トレーリングストップとトレーリングプロフィット - ページ 4

 

はい、了解しました。チケット番号が違うのに、cntが3,2,1のような値になってしまい、比較することができません。

if(OrdersTotal()>0){

        for(cnt=OrdersTotal()-1;cnt>=0;cnt--){

        

        if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue;

        if(OrderSymbol() == Symbol() && OrderMagicNumber() ==  MagicNumber){



                sl     = OrderStopLoss(); // Stop Loss. 

                tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. 

                Order Ticket=OrderTicket(); 

                

                if(OrderType()==OP_SLL){ 

                if( Order Ticket== Sell_Order_Ticket_1){ Do the Normal Trailing Stop}

                if( Order Ticket== Sell_Order_Ticket_2){ Do the Normal Trailing Stop}

                if( Order Ticket== Sell_Order_Ticket_3){ Don't move the Stop Loss} 

このようにチケット番号を比較することは可能でしょうか?

お問い合わせ先

 
Arav007:

はい、了解しました。チケット番号が違うのに、cntが3,2,1のような値になってしまい、比較することができません。

このようにチケット番号を比較することは可能でしょうか?

回答

no
PCを再起動すると、Sell_Order_Ticket_1 (2 と 3 も) の値は失われます。

orderopenprice と ordertakeprofit をチェック する。

 
deVries:

いいえ
PCを再起動すると、Sell_Order_Ticket_1 (2 と 3 も) の値は失わ れます。

orderopenpriceとordertakeprofitを確認する。


Terminalを再起動すると、Sell_Order_Ticket_1の値が失われる理由がわかりません。

これは変数で、NewSell orderが openされない限り上書きされることはないです。

これは私が理解していることですが、あなたのコメントの裏にはロジックがあります。ということで、少し説明をお願いします。

それと、OrderOpenPriceとOrderTakeProfitの関数を調べてみました。これらをどうすればいいのでしょうか?

 
Arav007:


Terminalを再起動するとSell_Order_Ticket_1の値が失われる理由がわかりません?

これは変数で、新規の売り注文が始まらない限り上書きされることはないのです。

これは私が理解していることですが、あなたのコメントの裏には論理があります。ということで、少し説明をお願いします。

それと、OrderOpenPriceとOrderTakeProfitの関数を見ましたが、これはどうすればいいのでしょうか?これらはどうすればいいのでしょうか?


ターミナルを再起動すると、すべての変数が失われます。

クライアント端末のGlobal Variablesのみ取得可能です。

 
Arav007:


Terminalを再起動するとSell_Order_Ticket_1の値が消えてしまうのですが、なぜでしょうか?

これは変数で、新規の売り注文が始まらない限り上書きされることはありません。

これは私が理解していることですが、あなたのコメントの背後にあるロジックがあります。ということで、ちょっと解説お願いします。

それと、OrderOpenPriceとOrderTakeProfitの関数を見ましたが、これはどうすればいいのでしょうか?どうすればいいのでしょうか?


ファイルを作成し、さらにテストしてください。

3つのトレードを開いてみてください。

得られた数字を記録してください。

その後、メタトレーダー4を終了し、再度立ち上げ Sell_Order_Ticket_1, Sell_Order_Ticket_2, Sell_Order_Ticket_3 の値をチェックして ください。

それらは同じですか? そうでない場合は、どのような値が得られますか?

 

よし、わかった。この「変数」についての情報は、将来 的にも役に立つと思います。

if(OrdersTotal()>0){

        for(cnt=3;cnt>0;cnt--){

        if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue;

        if(OrderSymbol() == Symbol() && OrderMagicNumber() ==  MagicNumber){



                sl     = OrderStopLoss(); // Stop Loss. 

                tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. 

if(OrderType()==OP_BUY){ 

if (cnt==3) { Do the Normal Trailing Stop}

if (cnt==2) { Do the Normal Trailing Stop}

if (cnt==1) { Don't move the Stop Loss}

}

}

} 

どうですか?

 
Arav007:

よし、わかった。この「変数」についての情報は、将来的にも役に立つと思います。

これはどうですか?


まず、あなたのトレードを開始するコードをもう一度見てみましょうか?

ストップロスとテイクプロフィットをチェックしてみて ください。

 
deVries:


まず、あなたの取引開始のコードをもう一度見てみましょうか?

ストップロスとテイクプロフィットを確認してください。


ああ、それは間違ったコードのためです。修正後、Take Profitの部分は問題ないのですが、Stop Lossが問題です。

ロジックです。

if (Fast_EMA>Slow_SMA)

{

if (MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)

{

買い

}

}

 
Arav007:


ああ、間違ったコードのためです。修正後、Take Profitの部分は問題ないのですが、Stop Lossが問題です。

そのトレードでは、どのようなストップロスを望んだのでしょうか?
 
deVries:
これらのトレードで、あなたはどんなストップロスを望んでいましたか?


USDJPYのトレードのように。

第1トレード(ここでは時間の逆順序のため最終)のTP= 103.636

第2トレードのTP= 103.736

第3トレードのTP= 108.536 [ このTPをこのような距離に設定したので、TPがないように動作します] 。

さて、私の要求通り、価格が7ピップ[103.603]の利益になったとき、第1トレードと第2トレードのストップロスは1ピップになります。

1番目と2番目のトレードのストップロスは1ピップの利益[103.543]となり、3番目のトレードのストップロスは103.386のままとなります。

下の画像のようになります。

1番目のGBPUSDの注文は10pipsの利益で決済されました。

2番目の注文はまだ実行中で、SLは移動されました。

3番目の取引では、SLは私が望まない方法で移動させられました。