Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 190

 
zfs:
Ho anche bisogno di CharToStr, ma non copia. Grazie.

Non farlo. Forse stiamo parlando di cose diverse.
 

Per favore, consigliate come migliorare la funzione di chiusura degli ordini se il capitale supera il saldo di una certa percentuale.

Per esempio, se al momento l'equity è pari al 115%, devo chiudere alcuni lotti (ci possono essere diversi ordini con diversi lotti) per rendere l'equity pari al 110% del saldo.

 
Skydiver:

Per favore, consigliate come migliorare la funzione di chiusura degli ordini se il capitale supera il saldo di una certa percentuale.

Per esempio, se al momento l'equity è pari al 115%, devo chiudere alcuni lotti (ci possono essere diversi ordini con diversi lotti) per rendere l'equity pari al 110% del saldo.


Creare diverse funzioni con diverse implementazioni di algoritmi. Confrontare i tempi di esecuzione. Tra quelli che funzioneranno correttamente, si sceglie quello che funzionerà per il minor tempo possibile - questo è il "migliore". Quindi, niente di complicato. ;)))))))
 

È possibile impostare i livelli nell'indicatore e personalizzare gli stili utilizzando le funzioni SetLevelValue e SetLevelStyle, ma non so come arrivare alla loro descrizione. Forse qualcuno l'ha incontrato e lo sa?

 
Desead:

È possibile impostare i livelli nell'indicatore e personalizzare gli stili utilizzando le funzioni SetLevelValue e SetLevelStyle, ma non so come arrivare alla loro descrizione. Forse qualcuno l'ha incontrato e lo sa?


Se stiamo parlando di documentazione, evidenziate la parola in MetEditor e premete F1. O andare online, per esempio
https://docs.mql4.com/ru/customind/SetLevelStyle
 

Buon pomeriggio, potreste per favore avvisare se un ordine è già nel posto giusto o no?

Se no, allora metti

 

Buon pomeriggio!

Può dirmi qualcosa? Quando un ordine a mercato è aperto, il suo prezzo aperto può essere cambiato utilizzando una funzione:

bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE) 

Domanda: perché ne abbiamo bisogno? In modo che la funzione OrderProfit() dia risultati diversi in seguito rispetto al prezzo aperto iniziale? O questa possibilità è destinata a qualcos'altro?

(A proposito, OrderProfit() calcola esattamente dal prezzo di apertura o l'informazione viene richiesta al server dove viene calcolata altrimenti? La documentazione non dice nulla al riguardo).

 
sannin:

Buon pomeriggio, potreste per favore avvisare se un ordine è già nel posto giusto o no?

Se no, allora metti

Nel posto giusto - in quale posto?
 
yan720:

Buon pomeriggio!

Puoi dirmi qualcosa? Quando un ordine a mercato è aperto, il suo prezzo aperto può essere cambiato utilizzando una funzione:

Domanda: perché ne abbiamo bisogno? In modo che la funzione OrderProfit() dia risultati diversi in seguito rispetto al prezzo aperto iniziale? O questa possibilità è destinata a qualcos'altro?

(A proposito, OrderProfit() calcola esattamente dal prezzo di apertura o l'informazione viene richiesta al server dove viene calcolata altrimenti? La documentazione non dice nulla al riguardo).

Possiamo solo modificare il prezzo di un ordine in sospeso. Il prezzo aperto della posizione di mercato non può essere cambiato. Sarebbe strano comprare il pane a 20, tornare a casa e cambiare il prezzo d'acquisto a 5 rubli, e poi nel portafoglio vedere l'arrivo dei 15 rubli di differenza... Fantastico... ;)

È possibile modificare il prezzo di stop di una posizione di mercato: Stop Loss e Take Profit.

OrderProfit() restituisce il profitto/perdita della posizione nella valuta del deposito. Naturalmente, è calcolato a partire dal prezzo di apertura.

 
artmedia70:

Solo il prezzo dell'ordine pendente può essere modificato. Il prezzo di apertura di una posizione di mercato non può più essere modificato. Sarebbe strano comprare del pane a 20, tornare a casa e cambiare il prezzo d'acquisto a 5 rubli, e poi vedere nel portafoglio l'arrivo di 15 rubli di differenza... Fantastico... ;)

È possibile modificare il prezzo di stop di una posizione di mercato: Stop Loss e Take Profit.


Grazie per la risposta. Io stesso mi sono sorpreso che sia sorta una tale domanda. Anche se forse ho frainteso quello che ho visto e che ha causato la domanda.

Ora sto guardando il codice di altre persone per vedere in quali modi (diversi dal mio e forse più efficienti) sono implementati certi algoritmi. In questo momento sto guardando il famigerato Ilan 1.6 Expert Advisor (allegato). Vedo che è stato assemblato da varie parti e poi ricostruito. Ma la linea 337 contiene una funzione di trailing stop definita dall'utente (anche se il flag del suo utilizzo è forzatamente cancellato all'inizio). Questa funzione è chiamata alla linea 52.

La mia domanda nasce dal fatto che il trailing stop di cui sopra modifica gli ordini aperti (e ce ne possono essere diversi) con uno stop loss mantenendo il loro TakeProfit iniziale ma impostando lo stesso valore (AveragePrice, che viene calcolato nelle righe 173 e 178) a questi ordini come prezzo aperto (secondo parametro della funzione OrderModify).

Oppure, questo parametro (prezzo aperto) è semplicemente ignorato dal server quando si modifica un ordine aperto e il prezzo può essere impostato su qualsiasi valore?

File:
ilan1.6.mq4  20 kb