HE 022:42:49.015 Test Script (EURUSD,H1) time for 'c = a + b' = 235 milliseconds, i = 1000000
OH 022:42:50.187 Test Script (EURUSD,H1) time for 'StringAdd(a,b)' = 1156 milliseconds, i = 1000000
EP 022:42:50.781 Test Script (EURUSD,H1) time for 'StringConcatenate(c,a,b)' = 594 milliseconds, i = 1000000
Когда программист создает советник, который получает сигналы от индикаторов, он всякий раз сталкивается с вопросом: использовать обращение к индикатору или перенести код индикатора в советник? Причины этому могут быть различные: желание сохранить в тайне используемые индикаторы и стратегию в целом, необходимость распространения советника единым...
//--- Проверка количества доступных баров (1 - минимально, 4 - оптимально для большинства расчётов. Но всё "по месту"...)if(rates_total<4) return0;
//--- Проверка и расчёт количества просчитываемых баровint limit=rates_total-prev_calculated; // 0 - пришел новый тик, новый бар формироваться не начал. 1 - пришел новый тик и начал формироваться новый бар.if(limit>1)
// если вписать "limit>0", то на нулевом баре будет расчёт только нулевого бара, на каждом новом баре будет полный перерасчёт всей истории// если вписать "limit>1", то на нулевом баре будет расчёт только нулевого бара, на открытии нового бара - пересчёт первого и нулевого,// при подгрузке истории и на первом запуске - перерасчёт всей истории
{
limit=rates_total-1;
// здесь должна быть инициализация всех используемых буферов индикатора необходимыми значениями (обычно EMPTY_VALUE и 0)
}
表示色をclrNONEに設定する。
つまり、バッファだけを出力して、変数は別に出力できないのですか?
つまり、バッファだけを出力して、変数は別に出力できないのですか?
回答ありがとうございました。
つまり、私が理解しているのは、バッファを作成し、そのバッファに
をRSI値で作成し、このバッファにiMAOnArray()で供給する。
EAでこれをやって、サブウィンドウでEAを テストするときに表示されるようになった方はいらっしゃいますか?
通常、iCustomによるEAテストは低調です。
https://www.mql5.com/ru/docs/strings/stringadd の例からコードを取り出し、スクリプトに貼り付けました。MQL4、MQL5でも結果は同じです。
よりもStringAdd()やStringConcatenate()の 方が高速に動作するはずなのですが、どうでしょうか?なぜそうでないのか。
iCustomは通常、Expert Advisorのテストを遅くします。
インジケータバッファのメモリの割り当ては、MQLスクリプトではなく、端末で行われるため、それは真実ではない、通常は逆です、これらの問題は、指標の非最適な計算の問題であり、多くの初心者が1つの指標の呼び出しに - ティック、過去のデータの全体の長さを計算します。
MQLの基本を理解された方は、記事を読んでみてください、全て書いてありますよ。
https://www.mql5.com/ru/articles/4602
EAでこれをやって、サブウィンドウでEAをテストするときに表示されるようになった人はいますか?
EAとインジケーターの違い、インジケーターのバッファがあるものとないもの、トレーディング機能があるものとないもの......誰も読んでないですね。
ZZY: サブウィンドウはインジケータしか作成できません。サブウィンドウを作成した場合、Expert Advisorhttps://www.mql5.com/ru/docs/constants/objectconstants/enum_object を使用して、このサブウィンドウにグラフィックオブジェクトを追加することができます。
ZSYZZ:サブウィンドウはテンプレート適用で取得可能、数ヶ月前にトピックがあったが、今までは他のことに問題があるのでは?
インジケータバッファのメモリの割り当ては、MQLスクリプトではなく、ターミナルによって行われるため、通常、これらの問題は、インジケータ内の非最適な計算の問題であり、多くの初心者は、1つのインジケータコール - ティックで、彼らは過去のデータの全体の長さを計算する真実ではありません
MQLの基本を理解された方は、記事を読んでみてください、昔から書かれています。
https://www.mql5.com/ru/articles/4602
エキスパートアドバイザーとインジケーターの違い、インジケーターバッファがある人とない人、トレーディング機能がある人とない人......誰も読んでいない。
ZZY: サブウィンドウはインジケータしか作成できません。サブウィンドウを作成した場合、Expert Advisorhttps://www.mql5.com/ru/docs/constants/objectconstants/enum_object を使用してこのサブウィンドウにグラフィカルオブジェクトを追加することができます。
ZSYZZ:サブウィンドウはテンプレートを適用することで取得できる、数ヶ月前のトピックですが、ここまでくると何か別の問題があるような気がします
すみません。言い方が悪かったかもしれませんが
テストに使うつもりはないが、実行するつもりはない。
テスト時のインジケーターチャート上での可視化については、もし
ビルトインインジケーターの機能を使用する場合、テストの過程でチャートに描画される
まさにその通りです。
しかし、EAのコードに統合された何らかのインジケータ計算のカスタムコードを使用する場合、このインジケータは
は、EAをテストする過程で表示されなくなります。
iCustomについては、テストの過程で使用すると、EAがチャートに表示されるようになります
インジケータとインジケータのコードは、EAと一緒に1つのex4にコンパイルすることができますが、私はそれを必要としません。
この件に関してiCustomを回避する方法があれば知りたかったのですが、なければそれも問題ありません。
包括的なご回答をいただき、誠にありがとうございました。
Artemは、ここにインジケーターのテンプレートを投稿しました、以下はOnCalculateからの 部分です。
使っているのですが、一つ疑問があります)
フルヒストリーの計算にlimit=rates_totalではなく、limit=rates_total- 1を使用するのはなぜですか?
フルヒストリーの計算にlimit=rates_total-1が 使われ、limit=rates_total でない のはなぜですか?
確認しようとすると、すぐに「範囲 外」になってしまいます - バーの番号が0から...合計 -1 , プログラミングではよくある状況です - 番号は0から始まります。わかりやすい例として、配列 double x[5] を宣言し、最後の要素 x[5] = 100 に何かを書き込もうとします。
ZS: まだ聞かれていない質問に答えると...。OrderTotal() も0からOrderTotal()-1までの数字が入ります ;)
ZS: まだ聞かれていない質問に答えて...。OrderTotal()も0からOrderTotal()-1までナンバリングされている;)
ところで疑問が生じたのですが、今、私は配列に平均値を勝つことができません、私は5で行うが、どのようなテーマで書くために、私は知らない、それがここにあるようにします。
このインジケータは開閉差を計算し、その上にМАを構築します。デバッグのためにMA=2を選択しましたが、SimpleMAOnBufferとiMAOnArrayを使用すると、説明のつかないラインシフトが発生し、iMAOnArrayは最後のバーでゼロ値を表示します。
関連する質問なのですが、5でやっているとはいえ、配列平均化で悩んでいるのですが、どの科目で書けばいいのかわからず、こちらにさせてください。
MT5ではデフォルトで左端のバーがバー0、MT4では右端のバーがバー0で、インジケーターバッファも 同じ数字になっています。
ZS: 残念ながら、私はMT5には関わりたくありません。自分のアイデアを確認するにはMT4で十分ですし、MT5で準備を見るだけで、MT5を使って何かを書いても誰にも見せることはありません )))