[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 69

 
Notter:

Buon pomeriggio,

Anche su un conto reale, ci sono molti errori nell'esecuzione degli ordini di trading. Per esempio, oggi:

2013.01.10 13:46:09 '15082': comprare 0,15 EURUSD a 1,30844 sl: 1,30758 tp: 0,00000
2013.01.10 13:46:10 '15082': richiesta accettata dal server
2013.01.10 13:46:10 '15082': requote 1.30843 / 1.30858 per l'acquisto aperto 0.15 EURUSD a 1.30844 sl: 1.30758 tp: 0.00000
2013.01.10 13:46:11 '15082': instant order buy 0.15 EURUSD at 1.30869 sl: 1.30785 tp: 0.00000
2013.01.10 13:46:11 '15082': richiesta accettata dal server
2013.01.10 13:46:11 '15082': richiesta in corso
2013.01.10 13:46:13 '15082': ordine aperto: #12941470 comprare 0.15 EURUSD a 1.30869 sl: 1.30785 tp: 0.00000

Cioè, dal segnale di apertura della posizione, ci sono voluti 4 secondi per l'esecuzione. E come sospetto - questo non è il limite.

La ragione di questo ritardo è che l'ordine è stato riquotato di 15 punti.

Come posso combatterlo? Non mi importa di 15 pips. Voglio aprire un ordine per mercato e non importa quanto il prezzo cambia in un secondo. Di conseguenza, ho aperto più in alto a1,30869, mentre avrei dovuto aprire a 1,30858. Questo problema può diventare critico per la redditività/perdite dell'Expert Advisor se non può aprire sul segnale e aspetta l'inizio della correzione.

Grazie.



Consiglio vivamente di cambiare la vostra società di intermediazione. Puoi mandarmi il nome di questa società di intermediazione come messaggio personale?
 
tara:

La dimensione del "fuck off" è impostata da un parametro dell'ordine chiamato "slippage". Nel tuo caso era 0, quindi una partenza di 1 pt nel preventivo ha portato a un requote.


Come se non ci fosse un 1 pt lì... non inventarlo.
 

Heroix

Non so molto sulle società di intermediazione, ho un contratto con Finam, faccio trading via modem e non so a quale società di intermediazione vanno i miei ordini... Non so a quale società di intermediazione vadano i miei ordini... non ne ho ancora idea.

Non so quali siano i miei spread, non ho idea con che tipo di spread ho a che fare. Poiché lo spread dell'euro è fluttuante, potrebbe essere inferiore a 15 pip, anche se è improbabile. Sto pensando a circa 30 pips.

Appena ho avuto le condizioni per chiudere l'ordine, il mio terminale si è bloccato con un messaggio

2013.01.10 14:47:45 TradeContext: errore ping
2013.01.10 14:48:50 '15082': ping fallito

Dopo alcuni tentativi di re-login l'ordine si è chiuso :)

In generale, direi che il trading è divertente, è automatizzato, devo correggere gli errori tutto il tempo :)

 

Buon pomeriggio a tutti!

Gente, per favore consigliate come risolvere il problema nel seguente codice:

       double sSup=Sup-(Udal*Point);                           // Sup - это уровень поддержки, Udal - расстояние от него
       zapS=0;
       for(int iS=0; iS<=OrdersTotal(); iS++)                  // перебор открытых ордеров
         {
          if(OrderSelect(iS,SELECT_BY_POS,MODE_TRADES)==true)  // выбор рыночного ордера
            {
             if(OrderSymbol()!=Symb) continue;                 // только нужный инструмент
             if(OrderType()>1) continue;                       // только рыночные
             sPO=OrderOpenPrice();                             // его цена
             sellTip=OrderType();                              // его тип
             if(sPO==sSup && sellTip==1) zapS=1;               // если цена открытого ордера совпадает с sSup и уровень является Sell, то поднять флаг
            }
         }
Il problema è nella linea if(sPO==sup && sellTip==1) zapS=1; (o per essere precisi, nel frammento sPO==sup ) . Il seguente problema: per esempio se sPO=1,3100 e sSup=1,3100 il flag è ancora uguale a 0 (il valore 1,3100 viene stampato ad entrambi i valori tramite Print ). Dove sto facendo un errore? Perché zapS non diventa 1?
 
WindSW:

Buon pomeriggio a tutti!

Gente, per favore consigliate come risolvere il problema nel seguente codice:

Il problema è nella lineaif(sPO==sup && sellTip==1) zapS=1; (o per essere precisi, nel frammento sPO==sup ) . Il seguente problema: per esempio se sPO=1,3100 e sSup=1,3100 il flag è ancora uguale a 0 (il valore 1,3100 viene stampato ad entrambi i valori tramite Print). Dove sto facendo un errore? Perché zapS non diventa 1?


https://www.mql5.com/ru/articles/1561
 
ilunga:

https://www.mql5.com/ru/articles/1561
Grazie! Cercherò di risolvere il problema
 
WindSW:

Buon pomeriggio a tutti!

Gente, per favore consigliate come risolvere il problema nel seguente codice:

Il problema è nella lineaif(sPO==sup && sellTip==1) zapS=1; (o per essere precisi, nel frammento sPO==sup ) . Il seguente problema: per esempio se sPO=1,3100 e sSup=1,3100 il flag è ancora uguale a 0 (il valore 1,3100 viene stampato ad entrambi i valori tramite Print). Dove sto facendo un errore? Perché zapS non diventa 1?

Controlla qui...
 

Ciao a tutti, non riesco a capire cosa c'è di sbagliato con diversi EAs che lavorano allo stesso tempo, solo un ordine si apre, il resto di loro ignorano i segnali, per favore consigliate cosa c'è di sbagliato?Ordini - funzione che determina il numero di ordini sul mago

total=OrdersTotal();

if(totale >=-1 && totale == Ordini(simbolo,operazione,magia))

 
dimarik0000:

Ciao a tutti, non riesco a capire cosa c'è di sbagliato con diversi EAs che lavorano allo stesso tempo, solo un ordine si apre, il resto di loro ignorano i segnali, per favore consigliate cosa c'è di sbagliato?Ordini - funzione che determina il numero di ordini sul mago

total=OrdersTotal();

if(totale >=-1 && totale == Ordini(simbolo,operazione,magia))


cos'è questa condizione assurda?! :)

Scrivi questo operatore in russo e cercherò di correggere la stringa.

 
hoz:
Ho avuto l'idea di usare modelli di Price Action ben noti chiamatiDBLHC eDBHLC.




Condizioni per la sua formazione:

DBLHC (Bull Setup)- barre con minimi identici e chiusure superiori.
Due (possono essere tre o più) barre consecutive con gli stessi minimi, con il prezzo di chiusura dell'ultima che è superiore al massimo della precedente. La differenza tra i minimi di barre adiacenti non può superare i 3 pip. Più barre compongono il set-up, più forte è il segnale che genera.

DBHLC (Bearish Setup)- barre con massimi uguali e chiusure inferiori.
Due (tre o più) barre consecutive con gli stessi massimi con il prezzo di chiusura dell'ultima inferiore al minimo della precedente. La differenza tra i massimi delle barre adiacenti non deve superare i 3 punti. Più barre compongono il set-up, più forte è il segnale che genera.

Prendiamo, per esempio, ilDBLHC (Bullish Setup)

Il prezzo aperto della barra attuale dovrebbe essere vicino al minimo della barra precedente. È facile da scrivere. Ma a noi interessa il caso in cui ci sia più di una barra con lo stesso minimo o quasi, per esempio 5. Come dovremmo lavorare in un caso simile? Come specificare questa condizione in modo da considerare non solo la barra precedente ma anche le barre situate prima nella storia?

Suppongo che dovremmo fare il giro delle sbarre dal passato al presente:

Allora dovremmo impostare in qualche modo la condizione che se il minimo della prossima barra è anche uguale al minimo della precedente (o delle precedenti), allora... oltre lo confrontiamo... Come implementare questo?

Ecco un consiglio:

NormalizeDouble(Low[i]-Low[i+1],Digits)<=3*Point --- differenza tra barre adiacenti. Se la condizione non è soddisfatta -> Return(False); (restituisce false)

Return(False) dopo il passaggio del ciclo

Possiamo farlo in un modo diverso:

Se la condizione NormalizeDouble(Low[i]-Low[i+1],Digits)<=3*Point è vera, aumenta il contatore delle barre adiacenti (inizialmente uguale a zero) di 1,

se la condizione è falsa, restituiamo il valore del contatore della barra adiacente.

Più grande è il numero restituito dalla funzione, più forte è l'insieme. Se viene restituito zero - il set-up non è presente.