【MQL5】sinput変数について

MQL5リファレンス
スポンサーリンク
スポンサーリンク

sinput変数とは?

sinput変数input変数と同じく、外部パラメーターを設定・操作するためのものです。

input変数についての詳細は↓の記事をご参照ください

input変数との違いは、sinput変数はストラテジーテスターでの最適化作業をする時などにはパラメーターの変更ができない点です。

sinputとはstatic inputの略、すなわち静的外部変数と訳される事からも、その役割が推し量れると思います。

staticについての詳細は↓の記事をご参照ください

静的動的という言葉についての詳細は↓の記事をご参照ください

sinput int ExampleVariable=1;
stattic input int ExampleVariable=1;
//上記2つは同じ意味である

よって、最適化をする際にあたり、変更をする必要のない情報(例えばマジックナンバーやデバッグメッセージなど)をパラメーター化する際にsinput変数が用いられることが多いです↓

input group           "Signal"
input int             ExtBBPeriod = 20;       // ボリンジャーバンド期間
input double         ExtBBDeviation= 2.0;     // 偏差
input ENUM_TIMEFRAMES ExtSignalTF=PERIOD_M15;   // BB時間枠
 
input group           "Trend"
input int             ExtMAPeriod   = 13;       // 移動平均期間
input ENUM_TIMEFRAMES ExtTrendTF=PERIOD_M15;   // MA時間枠
 
input group           "ExitRules"
input bool           ExtUseSL      = true;     // StopLossを使用
input int             Ext_SL_Points = 50;       // ポイント単位のStopLoss
input bool           ExtUseTP      = false;   // TakeProfitを使用
input int             Ext_TP_Points = 100;     // ポイント単位のTakeProfit
input bool           ExtUseTS      = true;     // Trailing Stopを使用
input int             Ext_TS_Points = 30;       // ポイント単位のTrailing Stop
 
input group           "MoneyManagement"
sinput double         ExtInitialLot = 0.1;     // 初期ロット値
input bool           ExtUseAutoLot = true;     // 自動ロット計算
 
input group           "Auxiliary"
sinput int           ExtMagicNumber = 123456; // EAマジックナンバー
sinput bool           ExtDebugMessage= true;   // デバッグメッセージを出力する

上記のパラメーターをストラテジーテスターで確認すると以下の画像のようになっています。

sinputキーワードをつけて宣言した変数の項目には、最適化の際に入力できる「スタート」「ステップ」「ストップ」欄に入力ができないようになっていることがわかります。

※ただし、MQL5にはParameterSetRange関数という最適化の「スタート」「ステップ」「ストップ」値に関する使い方を指定する関数があり、最適化の「スタート」「ステップ」「ストップ」値に関するデータを受け取るParameterGetRange関数と一緒に用いる事によって例外的に変更したりすることは可能となっています。

※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる

<MQL5でEAを作ろう講座>

をメインコンテンツとして展開しています。

【言語基礎編】

【中級実際にEAを作ろう編】

【発展編・MT5用EAを作る工程をカスタマイズしていく】

第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。

タイトルとURLをコピーしました