初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1401

 
freemovpalm #:

ストップロス(損切り)をトリガーした後、新しいシグナル(owlはインジケータで動作します)で、ロットを増やして(係数で乗算)エントリーしたいのですが、EAにマーチンゲールを追加するのを手伝ってもらえませんか?私はそれが正しい、最初に私はイベントを書く必要があります - stoploopイベント(私はどこで、どのようにわからない)、そしてそこにたくさんの(私は追加の変数が必要)と数学を行うのですか?

例えば、変数 - 連続で負けた取引のカウンターを追加します。負けるたびに1増加し、利益が出るたびに0にリセットされます。

そして、このカウンターからロットを設定する(例えば、このカウンターに比例して最小ロットを2倍する)。

しかし、マーチンゲールは、負けている戦略を利益にすることはできません。

 
JRandomTrader #:

例えば、変数 - 連続で負けた取引のカウンターを追加します。負けが続くと1ずつ増え、利益が続くと0にリセットされます。

そして、このカウンタからロットを設定します(例えば、最小ロットにこのカウンタの範囲内で2を掛けます)。

しかし、マーチンゲールは、負けている戦略を利益にすることはできません。

ありがとうございます!ストラテジーは平均2連敗、最大4連敗、だからマーチンが欲しかったんです。ところで、どなたかこのようなカウンターやフクロウが、私が説明したのと同じ原理で動いている例をご存じないでしょうか。そこから必要な行をコピーすればいいのですから。

 
string Button_TP = "Panel.String1.Button3";

Print(ObjectGetInteger(0, "Panel.String1.Button3", OBJPROP_STATE));
Print(ObjectGetInteger(0, Button_TP, OBJPROP_STATE));

なぜ、最初のオプションはうまくいき、2番目のオプションはうまくいかないのか、教えてください。ボタンの名前を変数に設定することはできないのでしょうか?

 

テスターが複数のペアをパスすることを自動化するにはどうしたらよいでしょうか。
例えば、20組を通したいんです。ここで、各ペアのテスターを再起動します。
変数の 作り方がわからない。

何か解決策はあるのでしょうか?

 
Evgeny Dyuka #:

テスターが複数のペアをパスすることを自動化するにはどうしたらよいでしょうか。
例えば、20組を消化する必要があります。ここで、各ペアのテスターを再起動します。
変数の 作り方がわからない。

何か解決策があるのでしょうか?

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

ストラテジーテスターでマーケットレビュー用に選択したペアを受信する方法は?

アレクセイ・ヴィクトロフ, 2022.04.14 17:11

ストラテジーテスターでは、マーケットウォッチターミナルを使用することはできません。テスターは、プログラムからプロパティが要求されたシンボルから 独自のMarketWatchを 生成します。したがって、MarketWatchを 形成するためには、必要なシンボルの任意のプロパティを要求する必要が あります。

sinput  string  Symb  = "GBPUSD,GBPAUD,GBPCAD,GBPJPY,EURUSD,EURGBP,EURAUD,EURCAD,EURJPY,AUDUSD,AUDNZD,AUDCAD,AUDJPY,NZDUSD,NZDCAD,USDCAD,USDJPY"
string s_arr[];
int OnInit()
{
  int i = 0, symbPos = 0;
  if(StringSplit(Symb, ',', s_arr) <= 0)
   {
    Print(__FUNCTION__ + " Error converting !");
    return(INIT_FAILED);
   }
  while(symbPos >= 0  && !IsStopped())
   {
    if(!SymbolInfoInteger(s_arr[i], SYMBOL_SELECT) || !SymbolInfoInteger(s_arr[i], SYMBOL_VISIBLE))
      SymbolSelect(s_arr[i], true);
    double price = SymbolInfoDouble(s_arr[i], SYMBOL_ASK);
    i++;
   }
 return(INIT_SUCCEEDED);
}/*******************************************************************/

プログラムからコードを引っ張ってくるときに間違いがなければいいのですが......。


 
Evgeny Dyuka #:

テスターが複数のペアをパスすることを自動化するにはどうしたらよいでしょうか。
例えば、20組を消化する必要があります。ここで、各ペアのテスターを再起動します。
変数の 作り方がわからない。

何か解決策はあるのでしょうか?

最適化中に変更される可能性のあるEAパラメータでペアを定義すると、このパラメータで最適化を実行するだけで、複数のペアを通過するようになります。
このパラメータは 'string' 型にはできませんが、 'int' または 'enum' 型にすることができます。
このパラメータを使って、EAを初期化する際に、パラメータの値に対応する目的のシンボルの名前を別の文字列変数に代入する。
EAのコードでは、Symbol()または_Symbolを、ペアの名前を持つ独自の変数に置き換える必要があります。

原理を理解していますか、それともコード例が必要ですか?

 
Evgeny Dyuka #:

テスターが複数のペアをパスすることを自動化するにはどうしたらよいでしょうか。
例えば、20組を通したいんです。ここで、各ペアのテスターを再起動します。
変数の 作り方がわからない。

何か解決策はあるのでしょうか?

Saberマルチテスターは、ツールや設定によってパスを設定することができます。

Библиотеки: MultiTester
Библиотеки: MultiTester
  • 2019.07.19
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: MultiTester
 
Yuriy Bykov #:

最適化中に変更可能なEAパラメータによってペアが定義されている場合、マルチペアパスを実行するためには、単純にこのパラメータによって最適化を実行することになります。
このパラメータは 'string' 型にはできませんが、 'int' または 'enum' 型にすることができます。
このパラメータを使って、EAを初期化する際に、パラメータの値に対応する目的のシンボルの名前を別の文字列変数に代入します。
EAのコードでは、Symbol()や_Symbolが使われているところは、ペアの名前を持つ独自の変数に置き換える必要があります。

原理を理解していますか、それともコード例が必要ですか?

素晴らしいオプティマイザーを経由することは思いつきませんでした。

 
Yuriy Bykov #:

最適化中に変更可能なEAパラメータによってペアが定義されている場合、マルチペアパスを実行するためには、単純にこのパラメータによって最適化を実行することになります。
このパラメータは 'string' 型にはできませんが、 'int' または 'enum' 型にすることはできます。
このパラメータを使って、EAを初期化する際に、パラメータの値に対応する目的のシンボルの名前を別の文字列変数に代入する。
EAのコードでは、Symbol()や_Symbolが使われているところは、ペアの名前を持つ独自の変数に置き換える必要があります。

原理は明確ですか、それともサンプルコードが必要ですか?

OnTick()はどうですか?
自分のシンボルをどこでも代用できるのですが、OnTick()は常にテスターが動作しているシンボルから 取得されることになります。
ヘルプより:
OnTick() イベントが発生します。Expert Advisorが接続 されているチャートのシンボルで新しいティックを受信したとき".

ここに矛盾はないのでしょうか?例えば、FXは週末にストップ安になりますが、暗号はそうではありません。

 
そう、それが問題なのです。暗号を扱ったことがないので、許容取引期間の違いについては考えたことがない。しかし、テスターでいくつかの暗号通貨をワーキングシンボルとして置き、Expert Advisorで取引を許可するチェックを追加する(またはそのままにする)ことは可能です。その後、商品によってティック到着時刻がバラバラなのが大きな問題です。ここでは、テスト結果の誤差を減らすために、より多くのティックを持つ楽器を選択するようにします。1つのチャートで動作する複数通貨のExpert Advisorでは、状況は同じです - OnTick()はメインシンボルに対してのみトリガーされます。この場合、異なるシンボルに来る新しいバーのイベントを正しく追跡するために、私は私のライブラリの新しいバーイベントを 使用しています。
New Bar Event
New Bar Event
  • www.mql5.com
Позволяет определить наступление события нового бара в мультивалютном советнике. В вызове OnTick() можно многократно проверять, наступило ли на этом тике событие для нужного инструмента (symbol) и периода графика (timeframe).
理由: