エキスパート: VR Breakdown level - 過去の高値または安値のブレイクアウトを利用したトレーディング戦略

 

VR Breakdown level - 過去の高値または安値のブレイクアウトを利用したトレーディング戦略:

過去の高値または安値の単純なブレイクアウトによるトレーディング戦略

VR Breakdown level - 過去の高値または安値のブレイクアウトを利用したトレーディング戦略

作者: Vladimir Pastushak

 

ノイズが多いし、コードもおかしなところがある。

例えば、ロット検証の部分。

// シンボルの最小ロットステップを取得する
  double stepvol = ::SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
  if(stepvol > 0)
    // 有効なステップの直近に丸められたロットサイズを計算する
    lt = stepvol * (int)(iLots / stepvol);
// 計算されたロットが最小許容ロットより小さいかどうかをチェックする。
  if(lt < ::SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN))
    lt = 0.0;  // 最小値を下回る場合は0に設定(無効)
// 初期化に成功した場合
  return(INIT_SUCCEEDED);
}

我々はロット0.0を得た。

そしてOnTick()に行き、ロット「0.0」でポジションを建てる。

if(trade.Buy(lt))

これは面白いアプローチだと思う。

--

十分な資金があるかどうかの簡単なチェックがない。このチェックがないと、デモ・モードではもちろん、テスターでもEAを動かすのが怖い。

--

なぜこのようなアプローチにしたのか、「他のみんなと同じように、どこにでもあるような」ものとは違うものにしたいという意図が理解できない --。

  if(new_time != old_time)
    // old_timeを更新し、trueを返す(新しいバーを検出)
    if((old_time = new_time) != NULL)
      return(true);

--

TPとSLのオーダー設定チェックが正しく実装されていない - 失敗した場合、ポジションはゼロ値でランダムに放置される。



 
Vitaly Muzichenko #:

ノイズが多く、コードが奇妙なところもある。

例えば、ロット検証の部分

ロット0.0

次にOnTick()でロット "0.0 "でポジションを建てる。

興味深いアプローチで、おそらく取引に利益をもたらすだろう。

--

十分な資金があるかどうかの簡単なチェックがない。このチェックがないと、デモ・モードでは言うまでもなく、テスターでもEAを実行するのが怖い。

--

私は、なぜこのようなアプローチをするのか、「他のみんなと同じように、どこでも」違うようにする意図が理解できない。

--

TPとSLのオーダー設定チェックが誤って実装されている - 失敗した場合、ポジションはゼロ値でランダムに放置される

初心者プログラマーが見慣れたコードを見ることができるように、コードの一部はヘルプを使って作られた。

そうすることで、コードが1行短くなり、私にとってはより便利で身近なものになり、さらに初心者はこの言語のさらなる可能性を知ることができる。

if(new_time != old_time)
    // old_timeを更新し、trueを返す(新しいバーを検出)
    if((old_time = new_time) != NULL)
      return(true);

и

if(new_time != old_time)
    // old_timeを更新し、trueを返す(新しいバーを検出)
      {
       old_time = new_time;
       return(true);
      }
 
Vitaly Muzichenko #:

TP注文とSL注文を設定するためのチェックが正しく実装されていません。

これはどうすればいいのでしょうか?

私の構想では、どのような場合でもTPとSLを 設定し、距離が許容される最小値より小さいというエラーが出た場合=許容される最小値に設定 することです

現在の形では、注文は設定されず、ポジションは無作為に放棄されたままです。

 
こんにちは。MT4版のEAではコードが修正されたという投稿を見ましたが、MT5版ではコードは修正されているのでしょうか?