キャンドルマツのMQLプログラミング ワンポイント解説②「リアルタイム条件と確定足条件について」
こんにちはキャンドルマツです。
こちらの連載ではMQLプログラムにおけるよくある質問などを紹介していきます!
今回は「リアルタイム条件と確定足条件について」についてです。
よくスクール内でも質問を多くいただきますので今回の記事で解説していきます!
まず「リアルタイム条件」と「確定足条件」という呼び方自体僕自身が呼んでいる名称であるだけで正確な名称はありません。
サインの表示タイミングなどでよくこちらの区別をする必要があるのですが、
「リアルタイム条件」 ⇒ 最新ローソク足でティックごとに通る条件文
「確定足条件」 ⇒ 既に確定したローソク足に対して1回ずつ通る条件文
大まかにいうとこのような条件です。
これでも少しわかりにくいと思いますのでもう少し説明すると、サインツールをチャートに適用した時、サインツールによっては過去のローソク足にもサインが表示されると思います。
それは「確定足条件」を通っているということになります。(画像はサインツールを適用させてすぐの状態)
また、最新足の値動きによって足確定前にサインが点いたり消えたりするサインツールがありますが、それが「リアルタイム条件」を通っているというものになります。
サインツールを読み込ませるときに過去のローソク足にサインを表示させる条件と過去の足にサインを表示させるコードを分けておくと色々便利であり、そうしないといけない場面というのも多いため僕はいつも「リアルタイム条件」と「確定足条件」を分けています。
例えば勝率計算をするときや、アラートの文言をそれぞれ変える時などさまざまな場面で細かい設定ができるようになります。
それでは確定足条件とリアルタイム条件はどのように分けて書くのかというと
/////////////////////////////////////////////////////////////////
int OnCalculate()
{
int limit = Bars - IndicatorCounted()-1;
for(int i=limit; i>=0; i--){ //リアルタイム条件
//ここにリアルタイムサイン表示条件
if(i>1 || (i==1 && NowBars
NowBars = Bars;
//ここに確定足サイン表示条件
}
}
}
//////////////////////////////////////////////////////////////////
簡単に書くとこのようになります。
ちょっとみにくいかもしれませんが、OnCalculateの中にfor文(リアルタイム条件)があり、その中に確定足条件があります。
OnCalculateはティックごとにコードを通ります。
for文(リアルタイム条件)は最初だけローソク足の本数分すべて通り、その後はティックごとにだけコードを通ります。
確定足条件も最初だけローソク足の本数分すべて通りますがその後は足が確定するごとに1回ずつコードを通ります。
最初はなんとなくわかればOKで、このようなコードをテンプレとして覚えておけばいいと思います。
なぜこのようにブロックを分けて書くのか?というところを理解しておけば、ツールを作成するごとにだんだん腑に落ちてくるはずです。
より細かい内容となるとかなりの量になってしまいますのでまた別の記事で紹介させていただきます!
現在は 無料プログラミング講座も行っており、以下のリンクよりLINEへご登録いただければ毎日宿題形式でメッセージ配信されます。
簡単なサインツールであれば無料の内容でも作成できるレベルにはなりますのでぜひご活用ください(^^)/
その他、キャンペーンとして特別に今なら僕が開発した
有料級EAを無料プレゼント中です!
以下のリンクよりLINEへご登録いただき、手順に従って応募フォームを送信いただくことでプレゼントします!
⇓プレゼントEAのバックテスト結果がこちら⇓
オススメ有料ツール
・年利500%越えを実現する、バイナリーオプション用高勝率サインツール「Skyhook」
よろしいですか?