Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
MQL5のWrite and earnから 移管。
mql5でストップロスの値を変更する方法を教えてください。4でのやり方はすでに知っています。5のバージョンでロボットを改造しようとしたら、動かなくなった。
MQL5のWrite and earnから 移管。
mql5でストップロスの値を変更する方法を教えてください。4でのやり方はすでに知っています。5のバージョンでロボットを改造しようとしたら、動かなくなった。
テスターではストキャスティクスなど必要な指標がないグラフが吐き出されるので、後で追加する必要がある。
必要なテンプレートを使用します。テンプレートについては、ターミナルヘルプのMetaTrader 5→チャートの操作→テンプレートとプロファイル のセクションを参照してください。
ターミナルには、あらかじめいくつかのテンプレート名が用意されています。
必要なパラメータを持つテンプレートを作成(または既存のテンプレートを変更)するには、必要な方法でチャートを設定し、対応するコマンドを使用して必要な名前でテンプレートを保存します。
どなたか、このテーマに関する事例や論文をご紹介いただけないでしょうか?
クライアント端末のグローバル変数。
トピックを取り上げるべきヘルプに実例が載っていないんです。そのような変数を作る にはどうしたらいいのか考えています。今のところ、バリアントでエラーが出ています。
どなたか、例題、記事を提案していただけませんか?
https://www.mql5.com/ru/docs/globals
マニュアルを読めるようになろう、人が文字で書いているのに、それを無視する。
GlobalVariableSet("変数名",set_value)
グローバル変数 に新しい値を設定します。変数が存在しない場合、システムは新しいグローバル変数を作成 します。
ありがとうございます、以上です。
非熱のダミーである私が、反転コンマを知っているわけがない)
mql5 Helpの例はありません))
マニュアルには、グローバル 変数の名前は文字列で指定すると書いてあります、引用符は通常の文字列の指定方法です。
ルールを読むこと、それはルール だから。
このように設定することができます。
{ // ...新しいバー
static datetime New_Time=0; // 現在のバーの時間
New_Bar=false; // 新しいバーはない
if(New_Time!=Time[0]) // 時間を比較
{
New_Time=Time[0]; // 時間は今
New_Bar=true; // 新しいバーをキャッチ
}
} 全て
ここで mql5 でやり直してみると
{ // ... 新しいバー
static datetime New_Time=0; // 現在のバーの時間
New_Bar=false; // 新しいバーはありません
MqlTick last_tick;// 最後に受け取ったティックの価格
SymbolInfoTick(_Symbol,last_tick);// 現在のシンボルの価格で last_tick 構造体を埋めます。
if(New_Time!=last_tick.time) // 時間を比較
{
New_Time=last_tick.time; // 今の時間
New_Bar=true; // 新しいバーをキャッチ
}
}しかし
新しいバー時間を何かしら間違って取得しているに違いないです。
しかし、New_Bar変数は毎ティックtrueになります。
新しいバーの 時間を間違って取得しているに違いありません。
なぜなら、毎回新しいティックタイムを取るので、当然ながら前回と同じにはならないからです。
また、前の関数ではバーの開始時刻を取得しましたが、ここでもティックタイムではなくバータイムを取得する必要があります。