トレーリングストップとトレーリングプロフィット - ページ 7 1234567 新しいコメント Tjipke de Vries 2014.03.10 12:26 #61 Arav007: ここにあります。 採用情報 より良い方法は、https://www.mql5.com/en/forum/150195/page6#924239 を参照して ください。 Arav007 2014.03.10 12:49 #62 私もそれを見て、テストしました。 また、このEAを完成させるために必要な「ストップロス」と「最小利益確定」の問題も解決していません。 Tjipke de Vries 2014.03.10 13:03 #63 これはあなたのコードの始まりです。 if(OrdersTotal()>0) {//----------------------------------------------------------------->1 for(int cnt=OrdersTotal()-1;cnt>=0;cnt--) {//--------------------------------------------------------------->2 if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol() == Symbol() && OrderMagicNumber() ==Magic_Number_1) { if (OrderProfit()<0.03) { if(OrderType()==OP_BUY) { bOrderClosed = closeBuyOrder(iOrderType_Buy); //Closing Buy order if(bOrderClosed) { Print("Buy Order 1 Closed"); } else { iLastError = GetLastError(); }//end else if(bOrderClosed) }//end if(OrderType()==OP_BUY) if(OrderType()==OP_SELL) { bOrderClosed = closeSellOrder(iOrderType_Sell); //Closing Sell order if(bOrderClosed) { Print("Sell Order 1 Closed"); } else { iLastError = GetLastError(); }//end else if(bOrderClosed) }//end if(OrderType()==OP_SELL) }// if (OrderProfit()<0.03) }// if(OrderSymbol() == Symbol() && OrderMagicNumber() ==Magic_Number_1) このコードは何をしているのか? なぜこんなことをするのか......そしてそれはいつ起こるのか? このコードで何をしたいのか エラーが発生した場合、iLastError を知っていますか? Arav007 2014.03.10 13:20 #64 ohh, Thanks.私の目を開かせてくれました。 実行されるたびに未決済の注文を全て決済しているのは、Conditionが if(OrderProfit()<0.03 )) です。 という条件なので、開いたばかりの注文は当然全部閉じます。 私の目的は、ある取引が0.1ドルの利益を得た後、その取引が元に戻る場合、最小の利益である0.01ドルで決済されることだ。 おそらく、'OrderProfit()'関数では 不可能だろう。 トレーリングストップを使うしかないですね。 Tjipke de Vries 2014.03.10 13:28 #65 Arav007: 私もそれを見て、テストしました。 また、このEAを完成させるために必要な「ストップロス」と「最小利益確定」の問題が解決されていません。 何をコード化したかったのでしょうか? ストップロスにどんな問題があるのですか? ブレイクイーブンでは、最初の2つのトレードで最小限のプロフィットロックがありますね。 Arav007 2014.03.10 15:12 #66 deVries: 何をコード化したかったのですか? ストップロスで何が問題なのか ブレークイーブンでは、最初の2回の取引で、希望するような最小限の利益ロックしかできない・・・・・・と思いましたが ご容赦ください。 パラメータを正しく設定できなかったんです。 はい、これです。ありがとうございました。 SLはFirst Two tradesとTPのために移動しました。 今はこの設定を使っています。 extern double BreakEven =5; extern double BreakEvenSL =1; extern double TrailingStop =10; extern double BreakEvenSL =1; extern double TrailingStop =10; extern double TrailingStep =3; 概念を明確にするためです。 もし相場が始値から 5ピップ利益で動いたら、ストップロスは1ピップの利益で設定されます。そしてトレーリングストップの機能が開始されます。 トレーリングストップを10に設定すると、もし相場が始値から10ピップ利益で動いた場合、ストップロスは3ピップ利益になりますよね? そして、さらに10pips、つまり合計20pipsになったら、SLは6pipsの利益になるのですね? ご挨拶 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ここにあります。
採用情報
より良い方法は、https://www.mql5.com/en/forum/150195/page6#924239 を参照して ください。
私もそれを見て、テストしました。
また、このEAを完成させるために必要な「ストップロス」と「最小利益確定」の問題も解決していません。
これはあなたのコードの始まりです。
このコードは何をしているのか?
なぜこんなことをするのか......そしてそれはいつ起こるのか?
このコードで何をしたいのか
エラーが発生した場合、iLastError を知っていますか?
ohh, Thanks.私の目を開かせてくれました。
実行されるたびに未決済の注文を全て決済しているのは、Conditionが
if(OrderProfit()<0.03 )) です。
という条件なので、開いたばかりの注文は当然全部閉じます。
私の目的は、ある取引が0.1ドルの利益を得た後、その取引が元に戻る場合、最小の利益である0.01ドルで決済されることだ。
おそらく、'OrderProfit()'関数では 不可能だろう。
トレーリングストップを使うしかないですね。
私もそれを見て、テストしました。
また、このEAを完成させるために必要な「ストップロス」と「最小利益確定」の問題が解決されていません。
何をコード化したかったのでしょうか?
ストップロスにどんな問題があるのですか?
ブレイクイーブンでは、最初の2つのトレードで最小限のプロフィットロックがありますね。
何をコード化したかったのですか?
ストップロスで何が問題なのか
ブレークイーブンでは、最初の2回の取引で、希望するような最小限の利益ロックしかできない・・・・・・と思いましたが
ご容赦ください。
パラメータを正しく設定できなかったんです。
はい、これです。ありがとうございました。
SLはFirst Two tradesとTPのために移動しました。
今はこの設定を使っています。
extern double BreakEven =5;
extern double BreakEvenSL =1;
extern double TrailingStop =10; extern double BreakEvenSL =1; extern double TrailingStop =10;
extern double TrailingStep =3;
概念を明確にするためです。
もし相場が始値から 5ピップ利益で動いたら、ストップロスは1ピップの利益で設定されます。そしてトレーリングストップの機能が開始されます。
トレーリングストップを10に設定すると、もし相場が始値から10ピップ利益で動いた場合、ストップロスは3ピップ利益になりますよね?
そして、さらに10pips、つまり合計20pipsになったら、SLは6pipsの利益になるのですね?
ご挨拶