10 - 20 ppts (in 5 cifre) non giocano un grande ruolo, è necessario metterlo nel programma
a quanto pare hai scritto prima il tuo post precedente e poi ti sei chiesto solo quello che volevi sentire in risposta....
davvero, 10-20pts in 5 cifre non importa molto, ho mostrato come confrontare correttamente le variabili come il doppio, sospetto che il tuo problema non sia nel fare la giusta condizione. Prova a formulare prima una domanda chiara e non ambigua per ottenere una risposta non ambigua
a quanto pare hai scritto prima il tuo post precedente e poi ti sei chiesto solo quello che volevi sentire in risposta....
davvero, 10-20 pp in 5 cifre non è un grosso problema, ho mostrato come confrontare correttamente le variabili di tipo doppio, ho il sospetto che il tuo problema non è nel fare la condizione giusta. Prova a formulare prima una domanda chiara e non ambigua per ottenere una risposta non ambigua
Solo che, imho, è sbagliato paragonare i doppi così. Per esempio, quattro cifre, i prezzi 1.00014 e 1.00016 sono equivalenti a 1.0001 e 1.0002, ma 1.00016 a 1.00014 < Punto
220Volt: Solo che, imho, è sbagliato paragonare il doble in questo modo. Per esempio, quattro cifre, prezzi 1.00014 e 1.00016, equivalenti a 1.0001 e 1.0002, ma 1.00016 - 1.00014 < Punto
Tu confondi il confronto di doppie e l'arrotondamento, hai bisogno di una chiara dichiarazione della domanda: o arrotondare una 5 cifre in una 4 cifre e poi fare l'analisi nella 4 cifre, o semplicemente confrontare correttamente due doppie.
Se confrontate due doppie allora quella parte di codice che ho citato funzionerà correttamente sia per 4 che per 5 cifre:
switch(Digits){
case5: if(1.00014-1.00016>=10*Point); условие= false, -0.00002 меньше 0.00001*10// цена больше на 10 пп в 5-ти знакеcase4: if(1.0001-1.0002>=Point);условие= false, -0.0001 меньше 0.0001 // цена больше на 1 пп в 4-х знаке
}
SZZ: ho fatto un errore nel mio codice: il caso dovrebbe essere chiuso da break, cioè così:
switch(Digits){
case5: if(Close[2]-Open[1]>=10*Point);// цена больше на 10 пп в 5-ти знакеbreak;
case4: if(Close[2]-Open[1]>=Point);// цена больше на 1 пп в 4-х знакеbreak;
}
Tu confondi il confronto e l'arrotondamento del doppio, hai bisogno di una chiara dichiarazione della domanda: o arrotondare 5 cifre a 4 cifre e poi fare l'analisi in 4 cifre o semplicemente confrontare correttamente due doppi.
Se confrontate due doppie allora quella parte di codice che ho citato funzionerà correttamente sia per 4 che per 5 cifre:
ZS: Ho fatto un errore nel mio codice: il caso dovrebbe essere chiuso con break, cioè così:
Anche se probabilmente hai ragione, probabilmente non ha importanza per l'autore. Io conto ogni pip, quindi guardo queste situazioni dal mio punto di vista.
Ho bisogno di trovare il punto minimo delle ultime 3 candele. confrontarlo con il prezzo minimo delle ultime 20 candele. se le ultime 3 candele sono più basse e la candela è nera ( Open[2]>Close[2] ) allora guarda oltre.
Ho bisogno di trovare un takeover ribassista ( Open[1]<=Close[2] && Open[2]<Close[1] ).
E aprire una posizione di acquisto.
Sembra essere corretto, ma sento che c'è qualcosa di sbagliato.
Cosa esattamente non funziona?
la posizione non si apre.
Prova in questo modo:
O io non capisco qualcosa, o tu hai frainteso il problema.
c'è un prezzo Close[2] di 1,34529 e un prezzo Open[1] di 1,34530
Ho una condizione per aprire la posizione.
Poiché 10 - 20 pips (in 5 cifre) non giocano un ruolo importante, ho bisogno di metterlo nel programma,
Se il prezzo di chiusura è 1,34529 e il prezzo di apertura è 1,34530, la posizione può ancora essere aperta.
la posizione non si apre.
???
allora cosa c'entra la condizione del prezzo?
Guarda il codice dopo, c'è un altro errore.
O io non capisco, o tu hai frainteso il compito.
......
10 - 20 ppts (in 5 cifre) non giocano un grande ruolo, è necessario metterlo nel programma
a quanto pare hai scritto prima il tuo post precedente e poi ti sei chiesto solo quello che volevi sentire in risposta....
davvero, 10-20pts in 5 cifre non importa molto, ho mostrato come confrontare correttamente le variabili come il doppio, sospetto che il tuo problema non sia nel fare la giusta condizione. Prova a formulare prima una domanda chiara e non ambigua per ottenere una risposta non ambigua
a quanto pare hai scritto prima il tuo post precedente e poi ti sei chiesto solo quello che volevi sentire in risposta....
davvero, 10-20 pp in 5 cifre non è un grosso problema, ho mostrato come confrontare correttamente le variabili di tipo doppio, ho il sospetto che il tuo problema non è nel fare la condizione giusta. Prova a formulare prima una domanda chiara e non ambigua per ottenere una risposta non ambigua
Solo che, imho, è sbagliato paragonare i doppi così. Per esempio, quattro cifre, i prezzi 1.00014 e 1.00016 sono equivalenti a 1.0001 e 1.0002, ma 1.00016 a 1.00014 < Punto
Tu confondi il confronto di doppie e l'arrotondamento, hai bisogno di una chiara dichiarazione della domanda: o arrotondare una 5 cifre in una 4 cifre e poi fare l'analisi nella 4 cifre, o semplicemente confrontare correttamente due doppie.
Se confrontate due doppie allora quella parte di codice che ho citato funzionerà correttamente sia per 4 che per 5 cifre:
guarda: https://www.mql5.com/ru/articles/1561 e https://www.mql5.com/ru/forum/101433
SZZ: ho fatto un errore nel mio codice: il caso dovrebbe essere chiuso da break, cioè così:
Tu confondi il confronto e l'arrotondamento del doppio, hai bisogno di una chiara dichiarazione della domanda: o arrotondare 5 cifre a 4 cifre e poi fare l'analisi in 4 cifre o semplicemente confrontare correttamente due doppi.
Se confrontate due doppie allora quella parte di codice che ho citato funzionerà correttamente sia per 4 che per 5 cifre:
guarda: https://www.mql5.com/ru/articles/1561 e https://www.mql5.com/ru/forum/101433
ZS: Ho fatto un errore nel mio codice: il caso dovrebbe essere chiuso con break, cioè così:
Anche se probabilmente hai ragione, probabilmente non ha importanza per l'autore. Io conto ogni pip, quindi guardo queste situazioni dal mio punto di vista.
Ecco, sono tutto incasinato e la mia testa non funziona più.
Ecco il codice
Ho bisogno di trovare il punto minimo delle ultime 3 candele. confrontarlo con il prezzo minimo delle ultime 20 candele. se le ultime 3 candele sono più basse e la candela è nera ( Open[2]>Close[2] ) allora guarda oltre.
Ho bisogno di trovare un takeover ribassista ( Open[1]<=Close[2] && Open[2]<Close[1] ).
E aprire una posizione di acquisto.
Sembra essere corretto, ma sento che c'è qualcosa di sbagliato.
Vi sarò molto grato se potete aiutarmi.