Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 911
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
Ragazzi aiuto per favore!!!
È più facile fare uno screenshot e postarlo qui che copiare il testo dell'EA? Pensi che qualcuno lo digiti manualmente nel suo ME da uno screenshot e cerchi di capirlo?
Se il compilatore dice che deve controllare il risultato della funzione, deve essere controllato. Non è difficile:
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
{OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, SL, TP, NULL, 0, 0,clrBlue);
MyOrderStateB = 1;
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());}
else Sleep(2);
Grazie. Giusto o sbagliato, però? L'avvertimento viene ancora fuori
Ciao!
Nel mio Expert Advisor, viene controllata la candela precedente e se le condizioni lo permettono, la posizione viene aperta, altrimenti non viene aperta. Il problema è che la posizione viene aperta prima che venga controllata la condizione della candela precedente. Poi vedo l'apertura della posizione nel log e poi vedo che non dovrebbe essere aperta. Come risolvere il problema?
else Sleep(2);
E con i relativi dà la stessa cosa (
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
{OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, SL, TP, NULL, 0, 0,clrBlue);
MyOrderStateB = 1;
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());}
else Sleep(2);
Grazie. Giusto o sbagliato, però? L'avvertimento viene ancora fuori
Sbagliato, non è necessario chiamare OrderSend due volte. E dovremmo calcolare SL e TP rispetto al prezzo, non in pip. E dovremmo normalizzare non i prezzi aperti Ask e Bid, ma il risultato dei calcoli SL e TP.
In generale, "imparare, imparare e ancora imparare" ))))
Sbagliato, non c'è bisogno di chiamare OrderSend due volte. E SL e TP dovrebbero essere calcolati rispetto al prezzo, non in punti. E dovremmo normalizzare non i prezzi di apertura Ask e Bid, ma il risultato dei calcoli SL e TP.
In generale, "imparare, imparare e ancora imparare" ))))
Grazie mille ancora!
Ora c'è un problema, l'EA apre diversi ordini in fila, non uno solo come volevo (
int start()
{ S1a = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_MAIN, 1), 0);
S1b = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_SIGNAL, 1), 0);
if(MyOrderStateB == 1)Sleep(300000);
else MyOrderStateB = 0;
if(MyOrderStateS == 1)Sleep(300000);
else MyOrderStateS = 0;
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, Bid - SL * Point, Ask + TP * Point, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());
else Sleep(2);
MyOrderStateB = 1;
if(S1a == S1b && S1a>80.0000 && S1b>80.0000 )
if(!OrderSend(Symbol(), OP_SELL, OrderValue, NormalizeDouble(Bid, Digits), Slippage, Ask + SL * Point, Bid - TP * Point , NULL, 0, 0,clrRed))
Print("Opening Sell error #", GetLastError());
else Sleep(2);
MyOrderStateS = 1;
return(0);}
Ho visto un comportamento strano nel tester di strategia. Il mio EA imposta e pesca gli ordini di stop pendenti. Succede quanto segue. L'Expert Advisor imposta un Buy Stop e un Sell Stop a 30 pip dal prezzo corrente (simbolo - GbpUsd. Quattro cifre. Livello minimo = 3 pip). Dopo un po' li tira su seguendo il mercato, se non si sono attivati. Così quello che vedo. la modifica ha successo, la modifica ha successo, e poi ad un certo punto nel tempo sbatte e l'errore #1 salta fuori. Cioè, tutto andava bene, l'EA stava facendo le stesse azioni e improvvisamente è apparso questo errore. Tutti i prezzi sono stati normalizzati in cifre. In generale, tutti i valori che vengono passati all'input della funzione OrderModify() sono normalizzati!
Quale può essere la ragione di tale comportamento dell'EA nel tester?