[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 1099

 
kolyango:

Se um pedido OP_BUY estiver aberto e seu Stoploss estiver 100 pips abaixo de seu preço aberto, mas o preço real tiver se afastado 80 pips ou mais do preço do pedido aberto, temos que mover o Stoploss para 50 pips acima do preço do pedido aberto. Como seria? Refiro-me ao código. Na verdade, como devemos marcar tal condição?

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

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

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

Alguém ajude a implementar tal condição...!!!


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

O que é polarização?

 


E qual é a variável predefinida para o preço ao qual o StopLoss é definido na ordem de mercado OP_BUY? Se houver um, é claro. Certo?

OrderStopLoss()

 
kolyango:

E qual é a variável predefinida para o preço ao qual o StopLoss é definido em uma ordem de mercado OP_BUY? Se houver um, é claro.

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

Se um pedido OP_BUY estiver aberto e seu Stoploss estiver 100 pips abaixo de seu preço aberto, mas o preço real tiver se afastado 80 pips ou mais do preço do pedido aberto, temos que mover o Stoploss para 50 pips acima do preço do pedido aberto. Como seria? Refiro-me ao código. Como devemos marcar tal condição?

Após as ordens terem sido tentadas:

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

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

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

Alguém me ajude a implementar tal condição...!!

O início provavelmente seria assim (1ª condição)?

if (OrderOpenPrice()>OrderStopLoss())

 
kolyango:

Se um pedido OP_BUY estiver aberto e seu Stoploss estiver 100 pips abaixo de seu preço aberto, mas o preço real tiver se afastado 80 pips ou mais do preço do pedido aberto, temos que mover o Stoploss para 50 pips acima do preço do pedido aberto. Como seria? Refiro-me ao código. Como devemos marcar tal condição?

Após as ordens terem sido tentadas:

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

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

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

Alguém me ajude a implementar tal condição...!!

O início provavelmente seria assim (1ª condição)?

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.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,Dígitos)>OrderStopLoss() || OrderStopLoss()<=0.0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Trailing*Point,Digits),OrderTakeProfit(),0, Ivory);

}}

Se um pedido OP_BUY estiver aberto e seu preço de Stoploss estiver 100 pips abaixo de seu preço aberto e o preço real tiver se afastado 80 pips ou mais do preço do pedido aberto, temos que mover nosso Stoploss por 50 pips acima do preço do pedido aberto. Como seria? Refiro-me ao código. Como devemos marcar tal condição?

Após as ordens terem sido tentadas:



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

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

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

Alguém ajude a implementar tal condição...!!!

E modificará constantemente o pedido dependendo do preço real e não apenas do StopLoss, mas também do TakeProfit! Ou não será?


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);
}
}
Ajudar a decifrar o que este código fará e sob que condições?
 
kolyango:

Se um pedido OP_BUY estiver aberto e seu Stoploss estiver 100 pips abaixo de seu preço aberto, mas o preço real tiver se afastado 80 pips ou mais do preço do pedido aberto, temos que mover o Stoploss para 50 pips acima do preço do pedido aberto. Como seria? Refiro-me ao código. Na verdade, como devemos marcar tal condição?

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

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

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

Alguém ajude a implementar tal condição...!!

Vejo que não queremos pensar sobre isso. Mas, no entanto... Dê uma olhada nesta linha - você encontrará muitas funções já prontas, em particular a parada de arrasto, que você precisa.

Conheça o código que já está funcionando - e então você pode escrevê-lo exatamente do jeito que quiser...

 
kolyango:

E modificará constantemente o pedido dependendo do preço real e não apenas do StopLoss, mas também do TakeProfit! Ou não?


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);
}
}

A princípio, ele apenas definirá Stop Loss e Take Profit.

Em seguida, ele arrasta o lucro, a partir do nível MinProfit.

 
DhP:

Stop Loss and Take Profit já foram definidos! Se o StopLoss ajustado for menor que o preço de abertura do pedido, você só precisa mover o StopLoss acima do preço de abertura em 50 pips (para a perda) se o preço atual for maior ou igual a 80 pips do preço de abertura do pedido. E você não precisa reordenar constantemente StopLoss e TakeProfit!
Razão: