[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 277
Tutto lo stesso, il codice non ha funzionato, ha fatto tutta l'azione su 2 candele. e ha dovuto imparare che la posizione già hanno più non si aprono ... perché ha aperto a tutti che ho potuto tutto il deposito utilizzato(( Rid guardare, forse che cosa altro è necessario aggiungere ... sarebbe molto grato
Capito. Per determinare se ci sono state posizioni nella storia, potete fare così:
Ma allora il vostro codice funzionerà solo in tester. Altrimenti, dovresti cambiare il magik ogni volta che accendi l'EA online.
Esattamente, è esattamente quello di cui abbiamo bisogno!
Si prega di consigliare come inserire correttamente questo codice in questa griglia:
(Se lo metto direttamente, il tester si ferma solo all'apertura della prima posizione)
for(int i=0; i<OrdersTotal(); i++){if(!(OrderSelect( i, SELECT_BY_POS, MODE_HISTORY )))continue;//выбираем из истории счетаif(OrderSymbol()!=Symbol())continue;if(OrderMagicNumber()== Magic){
позиции =true;}}//Открытие позиции:bool Open_Buy(){bool res=false;if( условие_1){if( советник еще не открывал позиций с Магическим номером){
res=true;}}else{if( условие_1){if( условие_2 опирается на данные прошлого ордера){
res=true;}}}return( res);}
//==================Закрытие позиций ============================//----------------------------------------------------------------------for(int v=0; v<OrdersTotal(); v++){if(OrderSelect( v, SELECT_BY_POS, MODE_TRADES)){if(OrderSymbol()==Symbol()&&OrderMagicNumber()== Magic){//----------------------------------------------------- if(OrderType()==OP_BUY){// если открыта бай-позиция if( вот здесь вставляй свои условия закрытия){OrderClose(OrderTicket(),OrderLots(),Bid,3,Вlack);// закрываем позицию}}//--------------------------------------------------------if(OrderType()==OP_SELL){// если открыта селл-позиция if( вот здесь вставляй свои условия закрытия){OrderClose(OrderTicket(),OrderLots(),Ask,3,Yellow);// закрываем позицию}}//------------------------------------------------------- }// Symbol() }// select}//total//------------конец блока закрытия позиций-----------------
Questo blocco deve essere inserito all'interno della funzione START, magari all'inizio, subito dopo il calcolo di Ema_1,Ema_2,Ema_3. E, a quanto pare, è necessario far lavorare l'advisor per PREZZI APERTI, altrimenti l'incrocio MA chiuderà costantemente le posizioni aperte su quasi ogni tick.
E il modo in cui hai fatto - non funzionerebbe correttamente online, perché l'EA chiuderà tutte le posizioni, anche quelle aperte da un altro EA o quelle manuali.
Ma ho già scritto come renderlo ancora più semplice. Invece di NumberOfPositions(NULL,OP_BUY,Magic) e invece di NumberOfPositions(NULL,OP_SELL,Magic) quando si aprono posizioni, basta impostare
NumeroPosizioni(NULL,-1,Magic)
e allora non ci sarà più di una posizione sul mercato per tutto il tempo. Senza alcun blocco di chiusura.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
https://docs.mql4.com/ru/array/ArrayResize
Sì, infatti. Ho dato un'occhiata, ma non l'ho visto.
Grazie.
Oggi sto rallentando. Devo riposare per il fine settimana.
E' più o meno così -
Grazie!!! Userò ....
DDFedor
Rid
Grazie.
Tutto lo stesso, il codice non ha funzionato, ha fatto tutta l'azione su 2 candele. e ha dovuto imparare che la posizione già hanno più non si aprono ... perché ha aperto a tutti che ho potuto tutto il deposito utilizzato(( Rid guardare, forse che cosa altro è necessario aggiungere ... sarebbe molto grato
Aiuto. Voglio un EA che faccia trading di notte. Sto scrivendo il codice
int start()
{
string Symb;
Symb=Symbol();
string Vremya;
Vremya=TimeToStr(TimeLocal(),TIME_MINUTES);
if(Vremya > 23:00 || Vremya < 06:00 )
{
// тут торговые функции
}
}
Genera un errore
'||' - la condizione non può essere una stringa
E se la condizione è ridotta a
se(Vremya > 23:00
funzionerà,
E se va su
se(Vremya < 06:00 )
non funzionerà.
Non capisco cosa c'è che non va. Puoi dirmi come impostare l'ora?
Il codice non ha funzionato, ho fatto tutti i trade su 2 candele.
Sì, infatti....
Ho dimenticato di impostare il magik nell'ORDERSEND fi.
Ora funziona bene. Controllato. Non ci possono essere più di due scambi diversamente diretti o più di uno scambio unidirezionale.
Se non è necessaria più di una mano di qualsiasi tipo, è necessario in f-ki NumberOfPositions(c) sostituire il tipo di mano con -1 (meno uno)
Per favore, ditemi cosa mostra la funzione iTime.
Che cos'è questa baggianata di 10 cifre? Secondi?
Come si fa a tradurli in anno-mese-giorno-ora-minuti?
>> Come questo: basta impostare lo spostamento della barra e ottenere l'ora e la data di default (se time=1 o true, si ottiene solo l'ora).
Una funzione molto utile, la raccomando.
Ho provato a regolare il secondo livello ma non ha funzionato.
Ho provato a farlo ma apriva e chiudeva un ordine immediatamente dopo il test
Capito. Per determinare se ci sono state posizioni nella storia, potete fare così:
Ma allora il vostro codice funzionerà solo in tester. Altrimenti, dovresti cambiare il magik ogni volta che accendi l'EA online.
Esattamente, è esattamente quello di cui abbiamo bisogno!
Si prega di consigliare come inserire correttamente questo codice in questa griglia:
(Se lo metto direttamente, il tester si ferma solo all'apertura della prima posizione)
Ho provato a regolare il secondo livello, ma non ha funzionato.
Sembra essere abbastanza logico, ma nel test apre e copre gli ordini contemporaneamente
Ho avuto a che fare con le posizioni di chiusura al mio tempo qui -
https://www.mql5.com/ru/forum/105913
Questo blocco deve essere inserito all'interno della funzione START, magari all'inizio, subito dopo il calcolo di Ema_1,Ema_2,Ema_3.
E, a quanto pare, è necessario far lavorare l'advisor per PREZZI APERTI, altrimenti l'incrocio MA chiuderà costantemente le posizioni aperte su quasi ogni tick.
E il modo in cui hai fatto - non funzionerebbe correttamente online, perché l'EA chiuderà tutte le posizioni, anche quelle aperte da un altro EA o quelle manuali.
Ma ho già scritto come renderlo ancora più semplice. Invece di NumberOfPositions(NULL,OP_BUY,Magic) e invece di NumberOfPositions(NULL,OP_SELL,Magic) quando si aprono posizioni, basta impostare
NumeroPosizioni(NULL,-1,Magic)
e allora non ci sarà più di una posizione sul mercato per tutto il tempo. Senza alcun blocco di chiusura.