[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 1099
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Se un ordine OP_BUY è aperto e il suo Stoploss è 100 pip sotto il suo prezzo aperto, ma il prezzo reale si è spostato di 80 pip o più dal prezzo dell'ordine aperto, dobbiamo spostare lo Stoploss a 50 pip sopra il prezzo dell'ordine aperto. Come sarebbe? Intendo il codice. In effetti, come dovremmo marcare una tale condizione?
Если установленная в ордере цена Stoploss меньше цены откр. ордера, то
если настоящая цена больше или равна 80 п. от цены откр. ордера, то
перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.
Qualcuno mi aiuti ad implementare una tale condizione!!!
https://www.mql4.com/ru/search/?keyword=%D1%82%D1%80%D0%B5%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3
Cos'è la polarizzazione?
https://www.mql4.com/ru/search/?keyword=%D1%82%D1%80%D0%B5%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3
E qual è la variabile predefinita per il prezzo a cui viene impostato lo StopLoss sull'ordine di mercato OP_BUY? Se ce n'è uno, ovviamente. Giusto?
OrderStopLoss()
E qual è la variabile predefinita per il prezzo a cui viene impostato lo StopLoss su un ordine a mercato OP_BUY? Se ce n'è uno, ovviamente.
https://www.mql5.com/ru/search/
Se un ordine OP_BUY è aperto e il suo Stoploss è 100 pip sotto il suo prezzo aperto, ma il prezzo reale si è spostato di 80 pip o più dal prezzo dell'ordine aperto, dobbiamo spostare lo Stoploss a 50 pip sopra il prezzo dell'ordine aperto. Come sarebbe? Intendo il codice. Come dobbiamo marcare una tale condizione?
Dopo che gli ordini sono stati provati:
Если установленная в ордере цена Stoploss меньше цены откр. ордера, то
если настоящая цена больше или равна 80 п. от цены откр. ордера, то
перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.
Qualcuno mi aiuti ad implementare una tale condizione!!!
L'inizio sarebbe probabilmente così (1a condizione)?
if (OrderOpenPrice()>OrderStopLoss())
Se un ordine OP_BUY è aperto e il suo Stoploss è 100 pip sotto il suo prezzo aperto, ma il prezzo reale si è spostato di 80 pip o più dal prezzo dell'ordine aperto, dobbiamo spostare lo Stoploss a 50 pip sopra il prezzo dell'ordine aperto. Come sarebbe? Intendo il codice. Come dobbiamo marcare una tale condizione?
Dopo che gli ordini sono stati provati:
Если установленная в ордере цена Stoploss меньше цены откр. ордера, то
если настоящая цена больше или равна 80 п. от цены откр. ордера, то
перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.
Qualcuno mi aiuti ad implementare una tale condizione!!!
L'inizio sarebbe probabilmente così (1a condizione)?
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);
}}
se(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);
se(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);
}}
Se un ordine OP_BUY è aperto e il suo prezzo Stoploss è 100 pip sotto il suo prezzo aperto e il prezzo reale si è spostato di 80 pip o più dal prezzo dell'ordine aperto, dobbiamo spostare il nostro Stoploss di 50 pip sopra il prezzo dell'ordine aperto. Come sarebbe? Intendo il codice. Come dobbiamo marcare una tale condizione?
Dopo che gli ordini sono stati provati:
Если установленная в ордере цена Stoploss меньше цены откр. ордера, то
если настоящая цена больше или равна 80 п. от цены откр. ордера, то
перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.
Qualcuno mi aiuti ad implementare una tale condizione!!!
E modificherà costantemente l'ordine a seconda del prezzo reale e non solo lo StopLoss, ma anche il TakeProfit! Oppure 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);
}
}
Se un ordine OP_BUY è aperto e il suo Stoploss è 100 pip sotto il suo prezzo aperto, ma il prezzo reale si è spostato di 80 pip o più dal prezzo dell'ordine aperto, dobbiamo spostare lo Stoploss a 50 pip sopra il prezzo dell'ordine aperto. Come sarebbe? Intendo il codice. In realtà, come dovremmo marcare una tale condizione?
Если установленная в ордере цена Stoploss меньше цены откр. ордера, то
если настоящая цена больше или равна 80 п. от цены откр. ордера, то
перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.
Qualcuno mi aiuti ad implementare una tale condizione!!!
Vedo che non vogliamo pensarci. Ma tuttavia... Dai un'occhiata a questo thread - troverai un sacco di funzioni già pronte, in particolare il trailing stop, di cui hai bisogno.
Impara a conoscere il codice che già funziona - e poi potrai scriverlo esattamente come vuoi tu...
E modificherà costantemente l'ordine a seconda del prezzo reale e non solo lo StopLoss, ma anche il 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);
}
}
All'inizio imposterà solo Stop Loss e Take Profit.
Poi si passa alla ricerca del profitto, a partire dal livello MinProfit.
Stop Loss e Take Profit sono già stati impostati! Se lo StopLoss impostato è inferiore al prezzo di apertura dell'ordine, devi solo spostare lo StopLoss sopra il prezzo di apertura di 50 pip (alla perdita) se il prezzo corrente è più o uguale a 80 pip dal prezzo di apertura dell'ordine. E non devi riorganizzare costantemente StopLoss e TakeProfit!