[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 118
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
Pomeriggio.
Ho scritto del codice per aprire due ordini pendenti (BuyStop e SellStop) sulle condizioni a=true e b=true e dopo un certo tempo l'EA chiude entrambi gli ordini, finché non appare un nuovo segnale, ma a volte l'EA apre 2 ordini pendenti nella stessa direzione. Perché questo accade e come evitare questo "bug"?
se (a=true && b=true)
{
int OrderCount = OrdersTotal();
se (OrderCount>1) return(0);
ticket1=OrderSend(Symbol(), OP_BUYSTOP, getLot(), PriceOpen_Buy, slippage, PriceOpen_Sell,0,0,Green);
Dormire(1000);
ticket2=OrderSend(Symbol(), OP_SELLSTOP, getLot(), PriceOpen_Sell, slippage, PriceOpen_Buy,0,0,Green);
Sleep(1000*59*TimeFrame);
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
se (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket());
se (OrderType()==OP_SELLSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask, slippage);
if (OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slippage);
}
ritorno(0);
}
Puoi darmi un suggerimento?
Grazie in anticipo
Salve,
È possibile inserire un programma con un peso fisso 1:1 nelle impostazioni?
Se è possibile, per favore ditemi come.
Grazie in anticipo.
Questa biblioteca può.
Sezione "3.3 Funzione per impostare le proprietà del grafico" funzione ServiceSetScaleFix1To1().
La libreria funziona solo con le localizzazioni russa e inglese. Potrebbe funzionare anche nel vostro.
Ecco la funzione di apertura dell'ordine:
Ecco la stampa dei parametri:
Qui possiamo vedere chiaramente che il prezzo TP e SL sono rispettivamente sotto e sopra l'Ask e Bid, cioè tutto è corretto. Ma per qualche motivo ottengo un errore di modifica perché lo stop è sbagliato. Come mai?
Ecco la funzione di apertura dell'ordine:
Ecco la stampa dei parametri:
Qui puoi vedere chiaramente che il prezzo TP e SL sono rispettivamente sotto e sopra l'Ask e il Bid, cioè tutto è corretto. Ma per qualche motivo ottengo un errore di modifica perché lo stop è sbagliato. Come mai?
Non legge affatto ciò che viene rimproverato?
Se non capisci qualcosa, lo risolveremo con il resto del mondo...
ZZY. Quando si inserisce un ordine in sospeso, la stringa
if (price < Bid)
Quando si inserisce un ordine pendente, la stringa non dovrebbe essere del tutto rilevante. Si dovrebbe controllare la corrispondenza con la distanza minima consentita impostata in MarketInfo(Symbol(), MODE_STOPLEVEL). La prima cosa che ha immediatamente attirato la mia attenzione.
Il secondo è quello di stampare il prezzo al quale l'ordine è impostato. Lo Stop e il Take non dovrebbero essere impostati rispetto all'Ask e al Bid, ma rispetto al prezzo di impostazione dell'ordine
Questa biblioteca può.
Sezione "3.3 Funzioni di impostazione delle proprietà del grafico" funzione ServiceSetScaleFix1To1().
La biblioteca funziona solo con le localizzazioni russa e inglese. Potrebbe funzionare anche nel vostro.
Leggete almeno quello che viene rimproverato?
Guarda i parametri passati alla funzione chiamata. Quando non c'è più niente di chiaro, lo risolveremo in pace...
Certo che lo sto leggendo, è per questo che sono curioso. Ho scollegato tutti i parametri di input.
Questo è quello che ho ottenuto:
Ecco cosa c'è nel registro:
Alcuni ordini sono modificati e altri no. I valori di ND(TP), ND(SL) all'inizio sono stati riportati a caso. Perché?
La funzione di normalizzazione, a proposito, è mia:
Leggete almeno quello che viene rimproverato?
Vedere i parametri passati alla funzione da chiamare.Quando non c'è niente di chiaro, lo risolveremo con il mondo...
ZS. Quando si inserisce un ordine pendente la linea
if (price < Bid)
Questo non è del tutto appropriato. Dovreste controllare se la distanza minima consentita corrisponde a quella specificata in MarketInfo(Symbol(), MODE_STOPLEVEL). La prima cosa che ha attirato subito la mia attenzione.
Di solito incontro controlli simili per la modifica dell'ordine ma non per l'apertura. L'ho già visto. Se il prezzo del bystop in sospeso è inferiore a quello di Ask, sarà un errore. E se imposto uno stop di 10 pips sarà sicuramente più alto del valore di StopLoss. Non faccio trading sui tick :)
In secondo luogo, stampa il prezzo a cui è impostato l'ordine. Stop e Take non dovrebbero essere posizionati rispetto all'Ask e al Bid, ma rispetto al prezzo al quale l'ordine è impostato
Immagino che questo sia per la modifica? Dopo tutto, sono Bid e Ask che sono importanti per noi quando apriamo l'ordine. Ho chiarito tutto con il post sopra.
Buon pomeriggio,
Voglio far funzionare un EA su diverse finestre allo stesso tempo. Ma solo un ordine può essere aperto per ogni strumento. Pertanto, ora c'è una condizione:
int totale = OrdiniTotali();
se (totale<1) { analisi e blocco posizione aperta} altrimenti { analisi e blocco posizione chiusa }
Ora, se viene aperto su due simboli allo stesso tempo, l'apertura su uno sarà bloccata sull'altro. Ecco perché ho inventato qualcosa di simile:
int totale = OrdiniTotali();
int cnt;
if(total>0)
{
for(cnt=0;cnt<totale;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol())
{
Symbol_FLAG = true;
}
}
}
if(total<1 || total>0 && Symbol_FLAG == false) { analisi e apertura blocco ptposition}
ma non funziona sul tester...
Forse tu puoi dirmi, forse sto facendo qualcosa di irrealizzabile?