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

 
Link_x:
Notate il valore della variabile che imposta il numero di lotti quando viene aperta una posizione.
Questo valore è zero.
È impossibile aprire una posizione con volume zero per il trading.




Anche questo è possibile, la cosa principale è scrivere il codice correttamente.



Sei sicuro di sapere di cosa stai parlando?
 
Trader7777:

E forse la terza volta qualcuno presterà ancora attenzione alla mia richiesta?

Ho scritto la funzione da SAM, ma il tester dà errore 4051, cioè numero di lotti impossibile. Qualcuno ha un'opinione su questo?


for (int i = OrdersTotal()-1; i>0; i--)  // надо i>=0
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)    // не надо OrderType() == otype, далее проверяете на бай и сел, а про отложки варианта нет.
Lot = NormalizeDouble (((OrderOpenPrice()-Bid)*Point)*OrderLots()/TP,2); 

TP è un valore di Take Profit per l'ordine selezionato? Quindi prendi il valore dell'ordine, ci sono diversi Take Profit.

A questo punto cercate la quantità di pip che siete nel drawdown, dividetela per il take profit e moltiplicate per il valore del lotto.

Se hai un biglietto di acquisto, sei in profitto quando l'offerta è superiore al prezzo di acquisto (ask). (Bid - OrderOpenPrice ())

Non si tiene conto dei biglietti di profitto negativi e positivi in generale,

nel caso in cui non avete abbastanza fondi liberi per aprire con un tale lotto, perché un biglietto negativo può sovrapporsi a tutti quelli positivi.

return (TotalLot); la funzione può restituire 0, in certe circostanze, questo è controllato ulteriormente?

 
Trader7777:

Sei sicuro di sapere di cosa stai parlando?

La frase di cui sopra ha diversi significati. I significati di questa frase sono descritti di seguito.

1 - Un rimprovero che ho frainteso il codice e di conseguenza ho dato istruzioni sbagliate.
2 - Un'indicazione della difficoltà di comprensione dei miei testi.
3 - Una messa in discussione della mia salute psicologica.

Scegli una delle opzioni per continuare a comunicare con me, poiché non posso rispondere alla tua domanda scegliendo intuitivamente l'opzione di interpretazione della frase.
 
Link_x:

La frase di cui sopra ha diversi significati. I significati di questa frase sono descritti di seguito.

1 - Un rimprovero che ho frainteso il codice e di conseguenza ho dato istruzioni sbagliate.
2 - Un'indicazione della difficoltà di comprensione dei miei testi.
3 - Una messa in discussione della mia salute psicologica.

Scegli una delle opzioni per continuare a comunicare con me, poiché non posso rispondere alla tua domanda scegliendo intuitivamente l'opzione di interpretazione della frase.

Sono sicuro che 1. Non si può giudicare in modo affidabile con quale lotto la posizione è aperta, se non altro perché il codice di apertura della posizione non è dato dall'autore. E dove avete visto zero, è il valore iniziale della variabile. È troppo presto per te per insegnare a qualcuno.
 
Ciao compagni. Sono nuovo della programmazione, sto imparando MQL4. Per favore, spiega come aprire un ordine senza aspettare certe condizioni, e non su ogni candela, come la mia. Forse avete un esempio di codice standard o qualcos'altro?
 
hmpr:
Ciao compagni. Sono nuovo nella programmazione, sto imparando MQL4. Per favore, spiega come aprire un ordine senza aspettare certe condizioni, e non su ogni candela, come la mia. Forse avete un esempio di codice standard o qualcos'altro?
L'algoritmo è il seguente: se l'EA controlla per un ordine aperto e se c'è già un ordine aperto, allora esce da start(). I codici sono qui.
 
Trader7777:

E forse qualcuno presterà attenzione alla mia richiesta dopo la terza volta?

Ho scritto una funzione CAM, ma il tester dà errore 4051, cioè numero di lotti impossibile. Qualcuno ha un'opinione su questo?

функция поиска лота, необходимого для выхода из просадки после  

//chiudere una griglia di ordini

Per valutare la correttezza del codice, bisogna sapere esattamente cosa voleva ottenere l'autore. Le vostre informazioni non sono sufficienti. Quello che volevi ottenere non è molto chiaro. Se si volesse compensare la perdita dopo aver chiuso la griglia aprendo un ordine opposto e aspettandosi che il prezzo passi nella direzione dell'ultimo ordine una certa quantità di punti, il processo di compensazione dipende sia dal lotto di questo ordine sia dalla distanza che il prezzo passerà nella direzione favorevole. Ciò significa che quando si calcola il lotto, si dovrebbe anche definire la distanza che il prezzo dovrà passare per compensare la perdita. Ma forse lei intende qualcos'altro.
 

il codice termina con una vista di

Vorrei inserire la funzione di sonno con un periodo di 30 secondi.

l'intero codice dovrebbe essere eseguito 2 volte al minuto invece che ogni tick, e

come inserire correttamente questa funzione? dove? e come? preferibilmente alla fine del codice con un esempio, grazie

 
bergkamp.:

il codice finisce con la vista

Vorrei inserire una funzione di sonno con un periodo di 30 secondi

l'intero codice dovrebbe essere eseguito 2 volte al minuto invece che ogni tick, e

come inserire correttamente questa funzione? dove? e come? preferibilmente alla fine del codice con un esempio, grazie

Memorizza il tempo alla fine del codice funzione. Poi lo confronta con l'ora attuale e se l'ora attuale supera l'ora memorizzata di 30 secondi, avvia nuovamente la funzione.
 
khorosh:
Ricordate il tempo alla fine del codice della funzione. Poi lo confronta con l'ora attuale e se l'ora attuale supera l'ora memorizzata di 30 secondi, esegue nuovamente la funzione.
ecco un esempio ... Se si inserisce semplicemente sleep alla fine del codice, come funziona?
Motivazione: