どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 551

 

機能的にはかなり完成度の高いエキスパート。そこに何を加えたいのか?

Это перевод в безубыток, только не в пунктах, а в процентах

損益分岐点を何パーセントの値で換算するのか?

そして、注文を修正するためには、やはりこの値をpips単位で必要とします。

 

例えばOrderOpenPriceが23%で、価格が76%になったらStopLossを51%に移動させるとします。

 
Example2:

叱咤激励のつもりで書いたわけではなく、他の人にもわかるように。お忙しい中、ありがとうございました。

ええ、問題ありません。ただ、厳密に守らなければならないルールがあるのです。例えば、https://forum.mql4.com/ru/60554/page102#930568、変数を初期化しない人がいて、間違ったものを取得する!そうやって価格は正常化されるのです。原則として、TPとStopレベルは計算されたものであるため、その精度は不確かです。 ルールに従うことに慣れれば、多くの問題を回避することができます。16桁目が1というようなミスを探すのに1ヶ月かかることもある。だから、教科書やフォーラムの例をよく研究してください。今、新しいビルドが試されようとしているが、教育を受けた人の数は激減するだろう。最後に引用したコードで大丈夫です。

最後に引用したコードは動作しますが、リテラシーがありません。そうすると、間違った習慣が根付いてしまうのです

 
vidnab:

例えばOrderOpenPriceが23%で、価格が76%になったらStopLossを51%に移動させるとします。



よし、1.3926でユーロバックを2ロット買ってみよう・・・。23%とか51%とか76%とか、どこから出てくるんだろう。
 
さて、注文を出した1.3926の価格はフィボナッチ 23%の水準 であり、価格が76%の水準に達したら、ストップを51%の水準に移動させる必要があります。
 
そして、この行の if (pp-OrderOpenPrice()>LevelProfit*po) では、最後の価格が注文の開始価格>開始価格+51%であることを入れる必要があります。そして、この行でストップを移動させます。 ModifyOrder(-1, OrderOpenPrice()+LevelWLoss*po, -1); by open price +28%.
 
つまり、このように(pp-OrderOpenPrice()>OrderOpenPrice()/23*51*po)であれば、です。でも、そうはいかないんです。
 
vidnab:
さて、注文を出した1.3926の価格はフィボナッチ23%レベルであり、76%レベルに達した時点でストッパーを51%レベルに移動させる必要があります。

フィボが伸びたのか・・・。おそらく、2つのレベルの間にあるのでしょう...Expert Advisorは、それらのレベルが何であるか、そしてこの注文は23%で開かれたもので、最初から開かれたものではないことを推測することができるはずです。

あなたの課題には、答えよりも質問の方が多いですね。

 
いいえ、彼は推測する必要はありません。始値が 23%で、76%になったら51%に移動させるだけでいいんです。
 
一回コードに桁を追加して終わりです。そして、それは初値に 基づくものとなる。