inserisce le compravendite quando si commentano
//if(OpenOrdersThisPair(Symbol())==0)entra quando
LotSize = 0.1;
ecc. lavora all'indietro fino a quando inizia a inserire le compravendite, una volta lì probabilmente saprai qual è il problema. hth
Sì, entra sul lato lungo anche con dimensione del lotto "0"...
Anche cambiare l'OpenOrderThisPair non funziona .... Hmmm. È molto strano...
Anche cambiare l'OpenOrderThisPair non funziona .... Hmmm. È molto strano...
DomGilberto:
Sì, entra sul lato lungo anche con dimensione del lotto "0" ...
Anche cambiare l'OpenOrderThisPair non funziona.... Hmmm. È molto strano...
Sì, entra sul lato lungo anche con dimensione del lotto "0" ...
Anche cambiare l'OpenOrderThisPair non funziona.... Hmmm. È molto strano...
Se questo test restituisce non zero . . .
if(OpenOrdersThisPair(Symbol()) == 0)
. . . l'OrderSend() non viene chiamato, ma si controlla comunque se SellTicketOrder è maggiore di 0 . . .
Fai questo . . .
if (direction==1)//--Sell--// { { double ssl=sell_stop_price; double stp=sell_takeprofit_price; LotSize = (RiskedAmount/(pips_to_ssl/pips))/10; if(OpenOrdersThisPair(Symbol())==0) { int SellTicketOrder = OrderSend(Symbol(),OP_SELLSTOP,LotSize,sellPrice,3,ssl,stp,NULL,MagicNumber,0,Red); if(SellTicketOrder > 0) { Print("Order Placed #", SellTicketOrder); } else { Print("Order Send Failed, error # ", GetLastError()); } } }
No - non sembra voler inviare l'ordine di vendita...
Deve essere un errore nel modo in cui ho scritto il codice per quanto riguarda le istruzioni "IF" all'interno del ciclo for che invia la funzione OrderEntry per attivare un ordine...
Deve essere un errore nel modo in cui ho scritto il codice per quanto riguarda le istruzioni "IF" all'interno del ciclo for che invia la funzione OrderEntry per attivare un ordine...
DomGilberto:
No - non sembra voler inviare l'ordine di vendita...
Deve essere un errore nel modo in cui ho scritto il codice per quanto riguarda le istruzioni "IF" all'interno del ciclo for che invia la funzione OrderEntry per attivare un ordine...
Quindi, quale errore ricevi ora? Se non ne ricevi uno e non ottieni "Order placed # 12345" allora la funzione OrderSend() non viene chiamata e hai un problema con la tua funzione OpenOrdersThisPair()... pubblica il tuo codice.
No - non sembra voler inviare l'ordine di vendita...
Deve essere un errore nel modo in cui ho scritto il codice per quanto riguarda le istruzioni "IF" all'interno del ciclo for che invia la funzione OrderEntry per attivare un ordine...
Quando questo funziona, funziona bene per il lato lungo (ci sto giocando da 2 ore). Il fatto è che molto probabilmente farò arrabbiare te e un certo qualcuno, perché so dove sto sbagliando (dove chiamo la funzione"CheckForMaTrade") per quanto riguarda le istruzioni IF relative ai parametri della media mobile, e come se sono "vere" invierà OrderEntry a OrderSend... Il problema è che sto ancora imparando a scrivere correttamente quella parte...
//+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if(OpenOrdersThisPair(Symbol())>=1) { if(UseMoveToBreakEven)MoveToBreakEven(); if(UseTrailingStop)AdjustTrail(); if(Use_MA_Trail)MA_Trail(); } if(IsNewCandle())CheckForMaTradeLong(); if(IsNewCandle())CheckForMaTradeShort(); //---- return(0); }
DomGilberto:
Quando questo funziona, funziona bene per il lato lungo (ci sto giocando da 2 ore). Il fatto è che molto probabilmente farò arrabbiare te e un certo qualcuno, perché so dove sto sbagliando (dove chiamo la funzione "CheckForMaTrade") per quanto riguarda le istruzioni IF relative ai parametri della media mobile, e come se sono "vere" invierà OrderEntry a OrderSend... Il problema è che sto ancora imparando a scrivere correttamente quella parte...
Quando questo funziona, funziona bene per il lato lungo (ci sto giocando da 2 ore). Il fatto è che molto probabilmente farò arrabbiare te e un certo qualcuno, perché so dove sto sbagliando (dove chiamo la funzione "CheckForMaTrade") per quanto riguarda le istruzioni IF relative ai parametri della media mobile, e come se sono "vere" invierà OrderEntry a OrderSend... Il problema è che sto ancora imparando a scrivere correttamente quella parte...
RaptorUK:
Quindi quale errore ottieni ora? Se non ne ottieni uno e non ottieni "Order placed # 12345" allora la funzione OrderSend() non viene chiamata e hai un problema con la tua funzione OpenOrdersThisPair() . . . posta il tuo codice.
Quindi quale errore ottieni ora? Se non ne ottieni uno e non ottieni "Order placed # 12345" allora la funzione OrderSend() non viene chiamata e hai un problema con la tua funzione OpenOrdersThisPair() . . . posta il tuo codice.
Quindi... . che errore ottieni, ecc . . .
Oh, scusate - non ricevo più alcun errore. Ricevo solo ordini di acquisto che passano e nessun ordine di vendita...
E' in relazione al mio precedente thread riguardante i cross over delle MA - non l'ho ancora capito! Ma non voglio far arrabbiare nessuno e battere un cavallo morto mentre la gente mi sta dando la risposta (anche se non capisco la risposta lol)! Grazie RaptorUK per il tuo aiuto!
E' in relazione al mio precedente thread riguardante i cross over delle MA - non l'ho ancora capito! Ma non voglio far arrabbiare nessuno e battere un cavallo morto mentre la gente mi sta dando la risposta (anche se non capisco la risposta lol)! Grazie RaptorUK per il tuo aiuto!
if(IsNewCandle())CheckForMaTradeLong(); if(IsNewCandle())CheckForMaTradeShort();Mentre sostengo il factoring delle operazioni nelle funzioni, non lo faccio per la maggior parte delle variazioni di New Candle/New Bar perché quella funzione può essere chiamata solo UNA VOLTA [per start()].
int start(){ static datetime time0; bool isNewCandle = time0 != Time[0]; time0 = Time[0]; // Once per start only. : if(isNewCandle)CheckForMaTradeLong(); if(isNewCandle)CheckForMaTradeShort();
Grazie WHRoeder - buon consiglio!
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
Sto lottando per capire perché le posizioni lunghe funzionano e quelle corte no?
Ho la sensazione che abbia qualcosa a che fare con la mia funzione init per determinare il numero di posizioni decimali con il broker dato a portata di mano. (dato che questo sembra essere il colpevole del perché gli ordini fantasma vengono buttati fuori proprio all'inizio di quando avvio il tester...)
Qualcuno ha qualche idea sul perché il lato corto mi dice questo errore?
Grazie in anticipo (il codice è un po' disordinato al momento, ho intenzione di ripulirlo ovviamente!)