Domande di base ... - pagina 9

 
Zen_Leow:
matrixebiz, hai considerato la possibilità che un trade si apra e si chiuda nella stessa candela prima che la candela si sia chiusa? probabilmente dovresti controllare anche la lista della cronologia.

Ho sempre portato questa piccola funzione che ho scritto in tutti i miei EAs, forse la puoi trovare utile anche tu.

bool DecideToOpenTrade()

{

int total = OrdersTotal();

if (total > 0)

{

for(int cnt=0;cnt<total;cnt++)

{

if(OrderSelect(cnt,SELECT_BY_POS))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber() == EA_MAGIC_NUM)

{

return (false);

}

}

}

}

// in case trades has already opened and closed within the candle

int histotal = OrdersHistoryTotal();

if (histotal > 0)

{

for(cnt=0;cnt<histotal;cnt++)

{

if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber() == EA_MAGIC_NUM)

{

if (Time[0] <= OrderOpenTime()) // don't open a new position if we're still on the same candle

{

return (false);

}

}

}

}

}

return (true);

}

int start()

{

// some time check codes first.. blah blah

// ...

// ...

// ...

// check signals

if (Should_Buy())

{

if (DecideToOpenTrade())

{

//... trade opening codes here

}

}

if (Should_Sell())

{

if (DecideToOpenTrade())

{

//... trade opening codes here

}

}

}

nota: questa funzione presuppone che tu abbia impostato un valore unico a EA_MAGIC_NUM. In questo modo il controllo non guarderà i trade aperti da altri EA.

Should_Buy() e Should_Sell() sono funzioni che creo in tutti i miei EA per determinare se si è verificato un segnale di acquisto o di vendita.

Spero che questo aiuti. Scrivimi un PM se hai bisogno di ulteriori chiarimenti.

saluti,

Zen

Grazie Zen Penso che questo andrà bene per me probabilmente ho solo bisogno di fare alcune modifiche perché il mio EA è un EA di trading multi valuta quindi questo è il motivo per cui non ero in grado di controllare una valuta specifica non sapendo con quale coppia di valute l'EA aveva negoziato, da qui il motivo per cui il codice che devo cambiare per cercare uno specifico OrderComment() invece di quello che hai OrderSymbol(). Stavo usando questo codice qui sotto per controllare se i trade esistevano già al momento, ma avevo problemi a controllare se i trade erano già chiusi sulla stessa barra.

for(int i=totalorders-1;i>=0;i--)

{

OrderSelect(i, SELECT_BY_POS);

if (OrderComment() == EA_Name + MagicNumber) GoOrders = false; }

if (GoOrders){orders();}

 

1 trade per segnale

Ciao a tutti quelli che possono aiutare

sono molto nuovo nel campo della codifica e sto avendo un problema con un'ea su cui sto lavorando, mi piacerebbe molto che questa ea piazzasse un trade e poi aspettasse un altro segnale prima di entrare in un altro trade

in questo momento piazza un trade e appena questo trade si chiude rientra in un altro trade senza aspettare il prossimo segnale ora vorrei sapere se qualcuno conosce il codice che uso per aspettare il prossimo segnale prima di entrare di nuovo

grazie per qualsiasi aiuto in anticipo

 

Per favore aiutatemi a cancellare questo errore

Sto lavorando su questo esperto di recente, ma ancora non riesco a cancellare questo errore, quindi spero davvero che qualcuno qui dentro possa aiutarmi a far sì che questo esperto chiuda un ordine quando la condizione è nella direzione opposta.

di seguito sono l'errore;

2009.01.07 08:46:58 2008.05.28 04:20 USDJPY,H1: ticket 197 sconosciuto per la funzione OrderClose

2009.01.07 08:46:58 2008.05.28 04:20 USDJPY,H1: OrderClose errore 4108

grazie in anticipo.

int start()

{

if( iMA(NULL,0,5, 0,MODE_EMA, PRICE_CLOSE, 0) <iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)

)

{

OrderSend(Symbol( ),OP_SELL, Lots,Bid, 0,Bid+StopLoss* Point,Bid- TakeProfit* Point,"", SystemMagicNumbe r,0,Red);

return(0);

}

if( iMA(NULL,0,5, 0,MODE_EMA, PRICE_CLOSE, 0)>iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)

)

{

OrderSend(Symbol( ),OP_BUY, Lots,Ask, 0,Ask-StopLoss* Point,Ask+ TakeProfit* Point,"", SystemMagicNumbe r,0,Blue) ;

return(0);

}

if (OrderType() ==OP_SELL)

{

if (iMA(NULL,0, 5,0,MODE_ EMA, PRICE_CLOSE, 0)>iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0))

{

OrderClose(SystemMa gicNumber, Lots,OrderCloseP rice(),0) ;

return(0);

}

}

if (OrderType() ==OP_BUY)

{

if (iMA(NULL,0, 5,0,MODE_ EMA, PRICE_CLOSE, 0)<iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0))

{

OrderClose(SystemMa gicNumber, Lots,OrderCloseP rice(),0) ;

return(0);

}

}

 

Come creare un oggetto linea finita

È possibile creare un oggetto trendline_object che è infinito. Ma come posso disegnare una linea finita da un punto all'altro? Grazie per qualsiasi risposta.

 
MetaMaster:
È possibile creare trendline_object che è infinito. Ma come posso disegnare una linea finita da un punto all'altro? Grazie per qualsiasi risposta.

impostare OBJPROP_RAY su false

 

L'EA invia l'ordine ogni tick dopo il segnale. AIUTO.

In questo momento sto studiando per creare un EA.

come far capire all'EA che voglio solo inviare un ordine ad ogni singolo segnale che appare.

La logica è

prima di dare il segnale, rimane calmo,

immediatamente dopo l'apparizione del segnale, invia l'ordine, una volta.

e aspetta un altro segnale.

Il problema è

questo Ea dovrebbe essere in grado di inviare l'ordine indipendentemente dal fatto che l'ordine precedente sia stato liquidato o meno.

Quindi, non posso codificarlo per inviare l'ordine solo dopo che l'ordine precedente è stato chiuso.

Grazie.

 

aiuto per ea base su indicatore

--------------------------------------------------------------------------------

cari tutti

ho indicatore (3ma cross con segnale) ho bisogno di cambiarlo in ea, posso copiare ind init() a expert init() e ind start() a expert start() e poi mettere funzione sell e buy quando la freccia mi dà il segnale?

lo faccio ma non funziona

 

aiuto con problema di codifica

Ciao

Sto cercando di scrivere un EA molto semplice che apre un certo numero di ordini pendenti a intervalli fissi. In uso apre gli ordini ma poi continua ad aprirli all'infinito. Come posso codificarlo in modo che gli ordini si aprano solo una volta, e anche se un ordine diventa live e colpisce il TP o lo SL, allora viene sostituito con un nuovo ordine pendente dalla lista originale?

Molte grazie per qualsiasi aiuto offerto,

Dan

 

Un trade per numero magico?

Sto scriptando un EA che aprirà automaticamente un trade basato su decisioni di trading manuali. Per esempio, guarderò il grafico e determinerò a quale prezzo voglio che l'ordine sia aperto, quale sia lo stop e il take, ecc. Poi imposterò l'EA e quando il prezzo sarà raggiunto aprirà il trade.

Devo fare in modo che l'EA apra solo un trade per numero magico. Imposterò manualmente il numero magico e ogni numero sarà unico. In questo modo, se il trade viene aperto e poi fermato, l'EA non proverà ad aprire un altro trade se il prezzo del trade viene raggiunto di nuovo.

Qualche idea sul modo migliore per ottenere questo risultato? Sarebbe utile anche qualche esempio di codice

 

...

jerzzhere:
Sto scriptando un EA che aprirà automaticamente un trade basato su decisioni di trading manuali. Per esempio, guarderò il grafico e determinerò a quale prezzo voglio che l'ordine sia aperto, quale sia lo stop e il take, ecc. Poi imposterò l'EA e quando il prezzo sarà raggiunto aprirà il trade.

Ho bisogno di fare in modo che l'EA apra solo un trade per numero magico. Imposterò manualmente il numero magico e ogni numero sarà unico. In questo modo, se il trade viene aperto e poi fermato l'EA non cercherà di aprire un altro trade se il prezzo del trade viene raggiunto di nuovo.

Qualche idea sul modo migliore per ottenere questo risultato? Sarebbe utile anche qualche esempio di codice

Avevo un tread su questo forum che aveva una soluzione per il numero magico...sfortunatamente davidke & walander odiavano le mie idee innovative e sollevavano il puzzo su tutto il forum...di conseguenza il mio tread fu cancellato...