機能
スクリプト(チャートに挿入後、一度だけ処理を行うプログラム)
の実行を行うの必要な関数です。
()内に、実現させたい処理を記述していきます。
スクリプトとは?→チャートに挿入後、一度だけ処理を行うプログラム
MQL5における「スクリプト」とは、プラットフォームであるMT5上で使用される、単一実行のプログラムです。
スクリプトは、一度実行されると特定の操作を行い、そのタスクが完了すると自動的に停止します。
特定のイベントや条件に基づいて自動的に反復実行されるEAや、市場の価格変動を表示するインジケータとは異なり、一度だけ実行されます。
例えば、
- データ分析や計算の実行
- アカウント情報や価格データの取得
などの用途に使われたりします。
引数
なし
戻り値
なし
備考
クライアント端末のイベントハンドラは、戻り値とパラメータの型によって、各イベントハンドラ関数を識別します。以下の説明に対応していないパラメータが指定された場合、また別の戻り値の型が使用された場合、その関数はイベントハンドラとして使用されません。
MQL5リファレンス
↑要は、間違った設定をしたら使えませんよってことを言っています。
引数(=パラメーター)を入れたり、戻り値を返すような記述をしてはいけません。
スクリプトやサービスを処理するための関数なので、EAおよびカスタム指標の記述に使うことはできません。
サンプルコード
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
//フィボナッチ数列の計算終点
int countFibo=15;
//計算に必要な変数の宣言
int iCounter=0,first=0,second=1;
//フィボナッチを格納する変数
int nowFiboNum;
do
{
nowFiboNum=first+second;
Print("iCounter = ",iCounter," フィボナッチ数 = ",nowFiboNum," flag=",IsStopped());
first=second;
//firstにsecondの値を代入
second=nowFiboNum;
//secondに nowFiboNumの値を代入
iCounter++;//1増加 (この演算子がない場合、無限ループが発生)
}
while(iCounter<countFibo && !IsStopped());
//15未満で、終了フラグが出ていない間はループする
}//do
//+------------------------------------------------------------------+
結果↓
Print関数については↓をご覧ください
コメント