[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 1099

 
kolyango:

OP_BUY注文が開いていて、そのストップロスがその注文の建値より100ピップス下にある場合、実際の価格が注文の建値から80ピップス以上離れたら、ストップロスを注文の建値の50ピップス上に移動させる必要があります。どのように見えるでしょうか?コードのことです。実際、そのような状態をどのようにマークすればいいのでしょうか。

Если установленная в ордере цена Stoploss меньше цены откр. ордера, то

если настоящая цена больше или равна 80 п. от цены откр. ордера, то

перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.

誰か、こんな条件を実装するのを手伝ってくれ......!


https://www.mql4.com/ru/search/?keyword=%D1%82%D1%80%D0%B5%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3
 

偏光とは?

 


また、OP_BUYの成行注文でStopLossが設定される価格の定義済み変数は何ですか?もちろん、あればの話ですが。そうだろ?

OrderStopLoss()

 
kolyango:

また、OP_BUYの成行注文でStopLossが設定される価格の定義済み変数は何でしょうか?もちろん、あればの話ですが。

https://www.mql5.com/ru/search/
 

OP_BUY注文が開いていて、そのストップロスがその注文の建値より100ピップス下にある場合、実際の価格が注文の建値から80ピップス以上離れたら、ストップロスを注文の建値の 50ピップス上に移動させる必要があります。どのように見えるでしょうか?コードのことです。このような状態をどのようにマークすればよいのでしょうか。

オーダーが試された後

Если установленная в ордере цена Stoploss меньше цены откр. ордера, то

если настоящая цена больше или равна 80 п. от цены откр. ордера, то

перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.

誰かこんな条件を実装するのを手伝ってくれ......!

冒頭は、おそらくこんな感じでしょうか(第1条件)。

if (OrderOpenPrice()>OrderStopLoss())

 
kolyango:

OP_BUY注文が開いていて、そのストップロスがその注文の建値より100ピップス下にある場合、実際の価格が注文の建値から80ピップス以上離れたら、ストップロスを注文の建値の50ピップス上に移動させる必要があります。どのように見えるでしょうか?コードのことです。このような状態をどのようにマークすればよいのでしょうか。

オーダーが試された後

Если установленная в ордере цена Stoploss меньше цены откр. ордера, то

если настоящая цена больше или равна 80 п. от цены откр. ордера, то

перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.

誰かこんな条件を実装するのを手伝ってくれ......!

冒頭は、おそらくこんな感じでしょうか(第1条件)。

if (OrderOpenPrice()>OrderStopLoss())



if(OrderType==OP_BUY){ if(OrderStopLoss()==0.0 && SL!=0 || OrderTakeProfit()==0.0 && TP!=0) OrderModify(OrderTicket(),OrderOpenPrice()

,NormalizeDouble(Bid-SL*Point,Digits),NormalizeDouble(Bid+TP*Point,Digits),0, Blue); if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>)NormalizeDouble((Trailing+MinProfit)*Point,Digits)){ if(NormalizeDouble(Bid-Trailing*Point,Digits)>OrderStopLoss() || OrderStopLoss()<0.OrderStopLoss()).0) OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Trailing*Point,Digits),OrderTakeProfit(),0,Ivory);


}}

 
DhP:


if(OrderType==OP_BUY){。
if(OrderStopLoss()==0.0 && SL!=0 || OrderTakeProfit()==0.0 && TP!=0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-SL*Point,Digits),NormalizeDouble(Bid+TP*Point,Digits),0, Blue)。
if(NormalizeDouble(Bid-OrderOpenPrice(,Digits))>NormalizeDouble((Trailing+MinProfit)*Point,Digits){)を実行します。
if(NormalizeDouble(Bid-Trailing*Point,Digits)>OrderStopLoss() || OrderStopLoss()<=0.0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Trailing*Point,Digits),OrderTakeProfit(),0, Ivory)を実行。

}}

OP_BUY注文が開いていて、そのストップロス価格がそのオープン価格より100pips低い場合、実際の価格がオープンオーダー価格から80pips以上離れたら、ストップロスをオーダーオープン価格より50pips移動させる必要があります。どのように見えるでしょうか?コードのことです。このような状態をどのようにマークすればよいのでしょうか。

オーダーが試された後



Если установленная в ордере цена Stoploss меньше цены откр. ордера, то

если настоящая цена больше или равна 80 п. от цены откр. ордера, то

перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.

誰か、こんな条件を実装するのを手伝ってくれ......!

そして、実際の価格とStopLossだけでなくTakeProfitに応じて、常に注文を修正するのですそれとも、そうではないのでしょうか?


if(OrderType==OP_BUY) // Здесь понятно! Если ордер на покупку
{
if(OrderStopLoss()==0.0 && SL!=0 || OrderTakeProfit()==0.0 && TP!=0) //
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-SL*Point,Digits),NormalizeDouble(Bid+TP*Point,Digits),0, Blue);
if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble((Trailing+MinProfit)*Point,Digits))
{
if(NormalizeDouble(Bid-Trailing*Point,Digits)>OrderStopLoss() || OrderStopLoss()<=0.0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Trailing*Point,Digits),OrderTakeProfit(),0, Ivory);
}
}
このコードがどのような条件でどのような動作をするのか、解読してください。
 
kolyango:

OP_BUY注文が開いていて、そのストップロスがその注文の建値より100ピップス下にある場合、実際の価格が注文の建値から80ピップス以上離れたら、ストップロスを注文の建値の50ピップス上に移動させる必要があります。どのように見えるでしょうか?コードのことです。実は、このような状態をどのようにマークすればいいのでしょうか。

Если установленная в ордере цена Stoploss меньше цены откр. ордера, то

если настоящая цена больше или равна 80 п. от цены откр. ордера, то

перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.

誰かこんな条件の実装を手伝ってくれ......!

なるほど、私たちは考えたくないのですね。しかし、それにしても...。 このスレッドを見て ください - あなたが必要とする多くの既製の関数、特にトレーリングストップが見つかります。

すでに動作しているコードを把握する - そうすれば、思い通りのコードを書くことができます...

 
kolyango:

そして、実際の価格とStopLossだけでなくTakeProfitに応じて、常に注文を修正するのですそれとも違う?


if(OrderType==OP_BUY)
{
if(OrderStopLoss()==0.0 && SL!=0 || OrderTakeProfit()==0.0 && TP!=0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-SL*Point,Digits),NormalizeDouble(Bid+TP*Point,Digits),0, Blue);
if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble((Trailing+MinProfit)*Point,Digits))
{
if(NormalizeDouble(Bid-Trailing*Point,Digits)>OrderStopLoss() || OrderStopLoss()<=0.0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Trailing*Point,Digits),OrderTakeProfit(),0, Ivory);
}
}

最初はストップロスとテイクプロフィットしか設定されません。

そして、MinProfitレベルから始めて、利益をトラブリングします。

 
DhP:

ストップロスとテイクプロフィットはすでに設定されています設定したStopLossが注文の始値より 小さい場合、現在の価格が注文の始値から80pips以上であれば、StopLossを始値より50pips(損失分)だけ移動させる必要があります。また、StopLossとTakeProfitを常に並べ替える必要はありません。
理由: