[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 1099

 
kolyango:

Si una orden OP_BUY está abierta y su Stoploss está 100 pips por debajo de su precio de apertura, pero el precio real se ha alejado 80 pips o más del precio de la orden abierta, tenemos que mover el Stoploss a 50 pips por encima del precio de apertura de la orden. ¿Cómo se vería? Me refiero al código. De hecho, ¿cómo deberíamos marcar tal condición?

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

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

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

¡¡¡Que alguien ayude a implementar tal condición...!!!


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

¿Qué es la polarización?

 


¿Y cuál es la variable predefinida para el precio al que se fija el StopLoss en la orden de mercado OP_BUY? Si es que hay uno, por supuesto. ¿Verdad?

OrderStopLoss()

 
kolyango:

¿Y cuál es la variable predefinida para el precio al que se fija el StopLoss en una orden de mercado OP_BUY? Si hay uno, por supuesto.

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

Si una orden OP_BUY está abierta y su Stoploss está 100 pips por debajo de su precio de apertura, pero el precio real se ha alejado 80 pips o más del precio de la orden abierta, tenemos que mover el Stoploss a 50 pips por encima del precio de apertura de la orden. ¿Qué aspecto tendría? Me refiero al código. ¿Cómo debemos marcar tal condición?

Después de que las órdenes hayan sido probadas:

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

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

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

¡¡Que alguien me ayude a implementar tal condición...!!

El comienzo sería probablemente así (1ª condición)...

if (OrderOpenPrice()>OrderStopLoss())

 
kolyango:

Si una orden OP_BUY está abierta y su Stoploss está 100 pips por debajo de su precio de apertura, pero el precio real se ha alejado 80 pips o más del precio de la orden abierta, tenemos que mover el Stoploss a 50 pips por encima del precio de apertura de la orden. ¿Cómo se vería? Me refiero al código. ¿Cómo debemos marcar tal condición?

Después de que las órdenes hayan sido probadas:

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

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

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

¡¡Que alguien me ayude a implementar tal condición...!!

El comienzo sería probablemente así (1ª condición)...

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

}}

Si una orden OP_BUY está abierta y su precio de Stoploss está 100 pips por debajo de su precio de apertura y el precio real se ha alejado 80 pips o más del precio de la orden abierta, tenemos que mover nuestro Stoploss 50 pips por encima del precio de apertura de la orden. ¿Cómo se vería? Me refiero al código. ¿Cómo debemos marcar tal condición?

Después de que las órdenes hayan sido probadas:



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

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

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

¡¡¡Que alguien ayude a implementar tal condición...!!!

¡Y modificará constantemente la orden en función del precio real y no sólo el StopLoss, sino también el TakeProfit! ¿O no?


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);
}
}
¿Ayuda a descifrar qué hará este código y en qué condiciones?
 
kolyango:

Si una orden OP_BUY está abierta y su Stoploss está 100 pips por debajo de su precio de apertura, pero el precio real se ha alejado 80 pips o más del precio de la orden abierta, tenemos que mover el Stoploss a 50 pips por encima del precio de apertura de la orden. ¿Cómo se vería? Me refiero al código. En realidad, ¿cómo debemos marcar tal condición?

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

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

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

¡¡¡Que alguien ayude a implementar tal condición...!!!

Veo que no queremos pensar en ello. Pero sin embargo... Echa un vistazo a este hilo - encontrarás un montón de funciones preparadas, en particular trailing stop, que necesitas.

Conozca el código que ya funciona, y luego podrá escribirlo exactamente como quiera...

 
kolyango:

¡Y modificará constantemente la orden en función del precio real y no sólo el StopLoss, sino también el TakeProfit! ¿O no?


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

Al principio sólo establecerá Stop Loss y Take Profit.

A continuación, se rastrea el beneficio, a partir del nivel MinProfit.

 
DhP:

El Stop Loss y el Take Profit ya han sido fijados. Si el StopLoss establecido es menor que el precio de apertura de la orden, sólo es necesario mover el StopLoss por encima del precio de apertura en 50 pips (hasta la pérdida) si el precio actual es mayor o igual a 80 pips del precio de apertura de la orden. ¡Y no tiene que reorganizar constantemente StopLoss y TakeProfit!
Razón de la queja: