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
È sempre stato difficile gestire gli ordini pendenti. anche su mt4. forse provare ad allontanarsi da questo? per esempio, fare degli ordini pendenti virtuali (basta memorizzarli in variabili e aprirli sul mercato quando il prezzo ha attraversato). Il tempo è importante ora...
Non ho tempo... ho appena eseguito il debug del codice.
almeno avere il tempo di fare qualche test e messa a punto
Questi singoli errori non influenzeranno il destino della tua EA nel campionato. Ma se in assenza di denaro farà ripetuti tentativi di aprire una posizione generando gigabyte nel suo registro, come è successo nei precedenti campionati, sarà squalificato.
Non vorrei che il mio EA fosse escluso dalla competizione a causa di questo tipo di dipendenza dalle caratteristiche raccomandate. Ma allora come faccio a sapere il corretto livello di stop consentito per un dato simbolo al momento?
P.S. Non vorrei usare la selezione con aumento incrementale in caso di errore, e il numero di errori in questo caso aumenterà.Ho un problema nel determinare i livelli di stop per gli ordini pendenti. Quando il mercato è calmo e vogliamo piazzare un ordine stop ad un livello ammissibile, la funzione SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL) funziona perfettamentee gli ordini vengono piazzati e tutti sono felici, me compreso. Tuttavia, se il mercato inizia a vibrare fortemente all'inizio di una sessione di trading, questa funzione smette di funzionare, gli ordini non vengono piazzati e il terminale inizia a generare errori sugli stop non validi.
Non vorrei che il mio EA fosse escluso dalla competizione a causa di questo tipo di dipendenza dalle caratteristiche raccomandate. Ma allora come faccio a sapere il corretto livello di stop consentito per un dato simbolo al momento?
P.S. Mi dispiacerebbe molto usare una selezione con aumento incrementale in caso di errore, e il numero di errori in questo caso aumenterebbe.Per gli ordini pendenti, l'errore di stop non valido si verifica anche quando il prezzo aperto è più vicino a quello corrente.
Cioè devi controllare non solo gli stop, ma anche il prezzo di apertura.
Credo che ci sia un errore nella funzione HistoryDealsTotal(), se viene avviata dopo HistorySelectByPosition() .
Visualizza ripetutamente il numero di operazioni pari a 0, e questo nonostante abbia una posizione aperta (variante multicurrency).
Ecco il codice:
void GetDealQuantity(stringa smbl)
{
lungo pos_id;
int totale, quantità=0;
ulong ticket=0; newticket;
PositionSelect(smbl);
pos_id=PositionGetInteger(POSITION_IDENTIFIER);
bool select=HistorySelectByPosition(pos_id);
total=HistoryDealsTotal();
Print(__FUNCTION__," select=",select," total=",total);
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
newticket=HistoryOrderGetTicket(i);
if(ticket!=newticket) { quantità++; ticket=newticket; }
}
if(smbl==simbolo1) quantity1=quantity;
if(smbl==simbolo2) quantity2=quantity;
Stampa(__FUNCTION__," quantità=",quantità);
}
Lo stampa nel diario:
2010.01.04 00:20:05 GetDealQuantity select=true total=0
2010.01.04 00:20:05 GetDealQuantity quantità=0
2010.01.04 00:20:05 EURJPY volume=0,1 quantità=0
2010.01.04 00:20:05 GetDealQuantity select=true total=1
2010.01.04 00:20:05 GetDealQuantity quantità=1
2010.01.04 00:20:05 AUDUSD volume=0,1 quantità=1
Cercate di inserire il codice correttamente nei vostri post. Prova a rifare il tuo esempio in questo modo:
C'è uno script di esempio da qualche parte per scrivere l'ultima citazione negli appunti o qualcosa di simile?
Appunti di Windows?
Devo guardare in msdn per vedere in quale dll si trovano le funzioni richieste...