マーケットで公開されているEAにおける最小ストップの確認。 - ページ 2

 
Vladislav Andruschenko:

そうですね、コントロールを与えるのではなく、「自分で停止を設定したい」というように、どのように必要なのかがわかります。

そして、メッセージ出力についてですが、ありがとうございます、考えてみます。

私はすべてのEAで両方のオプションを使用しています。パラメータ設定でストップロスが ゼロに設定されている場合はExpert Advisorで計算し、ゼロ以上に設定されている場合は、正しいかどうか確認し、すでに設定されているストップロスを設定します。エキスパートアドバイザーの場合は例外的にストップロスを全く使用しないことも可能です。
 
Vitalii Ananev:
私はすべてのEAでこの2つを使用しています。パラメーターでストップロスが ゼロに設定されている場合、Expert Advisorで計算し、ゼロより大きい場合は、正しいかどうか確認し、再度ストップロスを設定します。エキスパートアドバイザーの場合は例外的にストップロスを全く使用しないことも可能です。

しかし、macretでは、サーバーのstopmin = 0の場合、正しく動作しない。

以前はそうではなかったのですが......このチェックを受けていました。

現在、マーケットでモデレーターが意図的にStopLoss 1 - MinStop = 0とし、エラー130が表示されます - 製品はマーケットで受け入れられません。

 
Vladislav Andruschenko:

はい、これは市場のためだけです - しかし、任意のブローカーのための普遍性はありません

その仕組みは、マーケットで受け入れられるためには、3つのスプレッドで最小のストップを作る必要があります。

唯一の違いは、市場がそれらを受け入れることです - あなたは、最小の停止と3スプレッドを作る必要がありますが、実際にはこれは間違っている - ブローカーの最小の停止= 1スプレッド場合 - ユーザーは3未満のスプレッドを置くことができなくなります。

バッフル

そして、そんな浅いところにストップをかけてどうするんだ。ランダムなノイズの動きに持っていかれてしまう。
 
Vitalii Ananev:
こんな浅い止め方をする意味があるのか。ランダムなノイズの動きに持っていかれてしまう。
ユーザーが何を置くかではなく、ストップロスが1ポイントでないことは明らかです。市場で確認することですが、彼らは具体的にストップロス=1を置いています。
 
Vladislav Andruschenko:

しかし、macretでは、サーバーのstopmin = 0の場合、正しく動作しない。

以前はそうではなかったのですが......このチェックがありました。

今、市場のモデレーターは意図的にstoploom 1を置いた - minstop = 0で、エラー130が出る - 製品は市場で受け入れられません ...

正しさのチェックというのは、上で言った最初の選択肢のことを指しています。最小停止距離の値を自分で設定する。
 
Vladislav Andruschenko:

はい、これは市場のためだけです - しかし、任意のブローカーのための普遍性はありません

その仕組みは、マーケットで受け入れられるためには、3つのスプレッドで最小のストップを作る必要があります。

唯一の違いは、市場がそれらを受け入れることです - あなたは、最小の停止と3スプレッドを作る必要がありますが、実際にはこれは間違っている - ブローカーの最小の停止= 1スプレッド場合 - ユーザーは3未満のスプレッドを置くことができなくなります。

バッフル

チェックし、ストップレベラーが0以外を返した場合はそれを使用し、0を返した場合はAsk-Bidを使用します。

 
Alexander Bereznyak:

をチェックし、stop-Level が0以外を返していればそれを使用し、0を返していれば Ask-Bid

しかし、常にミニストップ=スプレッドとは限りません。

確認することができます。:-)チェックはしています。

 
Vitalii Ananev:
正しさを確認するというのは、上で言った最初の選択肢のことを指しています。最短停止距離の値を任意に設定します。
を指差すのか、それとも商品の取引条件をよく確認するのか、上に書いたように
 
Vladislav Andruschenko:

ありがとうございます。 でも、私と同じ構造なんですね。

申し訳ありませんが、あなたのコードのどこにStopLevel変数の値が記載されているのかわかりませんでした?引用されたコードでは、そのような変数の値に変化はありません。StopとProfitの値に変化がある。そのため、一度増やすと初期値には戻せなくなる。そのため、ストップレベルはとっくに下がっているのに、大きなストップと利益を追い求めることになるのです。

最小停止値=0にスプレッド*2をかけただけですが、多くのブローカーで最小停止値=3スプレッドであることが分かっているので、なぜ2にしてしまったのでしょうか?

多くのブローカー(数十、数百)の情報を持っていない。私が取引しているブローカー(顧客が口座を持っているため)では、スプレッドが2という数字が見えます。もしかしたら、どこかに違う価値観があるのかもしれません。

これは、ブローカーの情報提供のあり方として、根本的に間違っていると私は思います。ストパンの制限を受けるための標準的な仕組みがあります。リクエストで0を受け取ったとしても、実際には0ではない場合。そして、スプレッド値に応じて、1ティック ごとに必要な分だけ変更します。そのため、私はストップレベルの値を正しく表示しているブローカーでのみリアルアカウントを購入しています。

毎ティックごとにミニストップを確認しています。

OnInitLevelsという関数名から結論を出しました。1つのアクションに関連付けられます。
 
Vladislav Andruschenko:
ユーザーが何を置くかではなく、ストップロスが1ピップでないことは明らかです。ポイントは市場でのチェックで、彼らは意図的にストップロス= 1を置くことです。

こんなことをしました

   if ((StopLimit<10 && StopLimit!=0)  || (StopLoss<10 && StopLoss!=0))
   {
      Alert("Error in parameters. Too small size of a parametr of 'Stop loss' or 'Stop Loss limit'");
      return(INIT_PARAMETERS_INCORRECT);
   }

Expert Advisorは、3つの方法でストップを調整する機能を備えています。ストップサイズ(StopLoss)を手動で設定するか、ゼロに設定します。

StopLossがゼロに等しい場合、そのサイズは市場の状況に基づいて 計算されますが、StopLimit変数によって制限されます。

そしてOnInit()では、これらのパラメータが正しいかどうかチェックされます。なぜなら、10ポイント未満のストップを置くことは意味がないからです。