voidOnStart()
{
int TrailingStop=50;
//--- модифицирует цену Stop Loss ордера на покупку №12345if(TrailingStop>0)
{
OrderSelect(12345,SELECT_BY_TICKET);
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
bool res=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Point*TrailingStop,Digits),OrderTakeProfit(),0,Blue);
if(!res)
Print("Ошибка модификации ордера. Код ошибки=",GetLastError());
elsePrint("Цена Stop Loss ордера успешно модифицирована.");
}
}
}
}
Sono sicuro che è il risultato della mia mancanza di conoscenza e come conseguenza il passaggio più lento da 4 a 5. Accetterò qualsiasi suggerimento su come migliorare le mie abilità))))
L'idea è di cercare l'ordine per ticket, scegliere il tipo di ordine (Acquisto o Vendita) e poi usare questo tipo per controllare se lo stato attuale dell'ordine soddisfa la condizione (prezzo attuale meno il prezzo aperto) che è superiore al prezzo di un pip per la quantità data (nel mio codice questo è il prezzo di take profit diviso per 10). Se questa condizione è soddisfatta dovresti assicurarti che il prezzo di stop loss sia inferiore al prezzo corrente del valore di un pip moltiplicato per il valore specificato. Se anche questo è vero, il prezzo dello stop loss cambia.
Quindi le stronzate sono il risultato di poca conoscenza e come conseguenza di una transizione più lenta dal 4 al 5
Questo è il risultato della pigrizia di leggere il manuale.Quello che ti è stato indicato-identificatori delle proprietà degli ordini.E il valore si ottiene usando identificatori e funzioni OrderGetDouble , OrderGetInteger, ecc.
StrangerNet: Potresti farmi un piccolo esempio, non capisco bene la costruzione, forse sarebbe più corretto: if(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_BUY)?
Non sono un indizio - non lo scrivo in Cinque. Ma lasciate che vi faccia una domanda: cosa vi impedisce di registrare il risultato di questo controllo?
e vola attraverso tutta la funzione senza entrarci. Allo stesso tempo, la variabile tik è dichiarata globalmente: ulong tik=0; - e le viene assegnato un nuovo valore quando si riceve una risposta sull'impostazione dell'ordine: tik=mresult.order; - questo valore cambia nel debug. Perché non entra nella condizione?
StrangerNet: Posso avere un piccolo esempio, non capisco bene la costruzione, forse questo è più corretto: if(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_BUY)?
OrderSelect(tiket);//-- выбрать ордер по тикетуif(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_BUY)
{
}
La funzione if(OrderSelect(tik)==true) scrive l'errore 4754 - Ordine non trovato, con il valore tik nel debug 42276230 uguale al numero d'ordine creato 42276230, quale potrebbe essere il bug?
Allega l'intero codice o inizializza le variabili prima dello snippet di codice. Non sai mai cosa hai lì nelle variabili, ad esempio in
Codice intero:
L'intero codice:
Che diavolo è quello?
Che cazzo è questo?
)))))))
Sto usando MQL4 come base per il mio codice:
Sono sicuro che è il risultato della mia mancanza di conoscenza e come conseguenza il passaggio più lento da 4 a 5. Accetterò qualsiasi suggerimento su come migliorare le mie abilità))))
L'idea è di cercare l'ordine per ticket, scegliere il tipo di ordine (Acquisto o Vendita) e poi usare questo tipo per controllare se lo stato attuale dell'ordine soddisfa la condizione (prezzo attuale meno il prezzo aperto) che è superiore al prezzo di un pip per la quantità data (nel mio codice questo è il prezzo di take profit diviso per 10). Se questa condizione è soddisfatta dovresti assicurarti che il prezzo di stop loss sia inferiore al prezzo corrente del valore di un pip moltiplicato per il valore specificato. Se anche questo è vero, il prezzo dello stop loss cambia.
Quindi le stronzate sono il risultato di poca conoscenza e come conseguenza di una transizione più lenta dal 4 al 5
Il valore si ottiene utilizzando gli identificatori e le funzioni OrderGetDouble , OrderGetInteger, ecc.
Potresti farmi un piccolo esempio, non capisco bene la costruzione, forse sarebbe più corretto: if(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_BUY)?
Non posso dirtelo - non scrivo in A. Ma vi faccio una domanda: cosa vi impedisce di registrare il risultato di questo controllo?
Lavoro)))))))))
Corretti i bug, tutto sembra essere secondo il manuale:
Nel debug, raggiunge la condizione
e vola attraverso tutta la funzione senza entrarci. Allo stesso tempo, la variabile tik è dichiarata globalmente: ulong tik=0; - e le viene assegnato un nuovo valore quando si riceve una risposta sull'impostazione dell'ordine: tik=mresult.order; - questo valore cambia nel debug. Perché non entra nella condizione?
Posso avere un piccolo esempio, non capisco bene la costruzione, forse questo è più corretto: if(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_BUY)?