Strumenti 'Chiudi tutto'/'Apri - pagina 2

 
glader:
Io faccio trading in tempo reale. Fai trading LIVE? Potrebbe essere un broblema? Grazie per l'aiuto in anticipo...

Era il conto demo di Alpari.

Vuoi dire che hai provato ad usarlo con un conto reale?

Dovrebbe funzionare lo stesso.

 
newdigital:
Era un conto demo Alpari.

Vuoi dire che hai provato ad usarlo con un conto reale?

Dovrebbe funzionare lo stesso.

Sì, ho provato a usarlo con l'account reale sul live ma c'era un messaggio di errore...

Abbastanza confuso ma grazie comunque per il tuo aiuto...

 
glader:
Ho provato, ma ERRORE: 4109

Strumenti->Opzioni->ExpertAdvisors-> V Abilita ExpertAdvisors(...e Script)

 
ma6:
Strumenti->Opzioni->ExpertAdvisors-> V Abilita ExpertAdvisors(...e Script)

Grazie mille... ora funziona!!!

 

CloseOnTime EA di Kimiv.

File:
 
ma6:
Strumenti->Opzioni->ExpertAdvisors-> V Abilita ExpertAdvisors(...e Script)

Ricevo ancora lo stesso errore. Cosa intendi per"V"?

grazie

 

Ho lo stesso problema.

Ordine ...... non è riuscito a chiudere. Errore:4109

 

Chiudere tutti gli ordini aperti

Ho una domanda su come chiudere tutti gli ordini aperti. Questo include i trade che sono stati aperti manualmente.

Ecco il codice:

if(BalanceEquityProtectionLevel > 0 && AccountEquity() <= AccountBalance ()* BalanceEquityProtectionLevel)

{

AllowTrading = false;

Print("Min. Equity Level Reached - Trading Halted For ",Symbol());

// Alert("Min. Equity Level Reached - Trading Halted For ",Symbol());

for(cnt=OrdersTotal();cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

mode=OrderType();

if (mode==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue); }

if (mode==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red); }

// }

}

}

Il problema è che, se ho aperto alcune coppie, non è sempre vero che tutti i trade saranno chiusi. Inoltre, è successo che l'EA continua ad aprire un altro trade nonostante il parametro allowtrading == false.

Stavo facendo il debug di questa cosa e ho notato che per qualche motivo questo blocco di codice non veniva eseguito per tutte le coppie. Perché, non lo so. Qualcuno conosce la risposta?

Questo blocco dovrebbe chiudere tutti gli ordini aperti e impedire ulteriore trading, forse potrei risolvere questo problema scrivendo il parametro false in un file o qualcosa del genere? Il problema in questa situazione è anche con coppie che non hanno ordini aperti.

Grazie...

Dejan

 

Ecco il mio codice che ho scritto molto tempo fa, chiuderà tutte le posizioni in esecuzione.

#include

#include

int start()

{

doppio sA;

int cnt, totalOrders;

totalOrders = OrdersTotal();

se (totalOrders>0)

{

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

{

OrderSelect(0, SELECT_BY_POS);

if (OrderType() == OP_BUY) sA = MarketInfo(OrderSymbol(),MODE_BID);

altrimenti sA = MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),sA,3,CLR_NONE);

}

}

return(0);

}

 

Il tuo codice è molto simile al mio. I risultati sono gli stessi. Ho allegato un'immagine, per rendere alcune cose più chiare.

L'EA chiude tutte le operazioni per la coppia GBPUSD (immagine). Come puoi vedere, dopo questo viene aperto un altro trade. (1 significa che allowtrade è vero, 0 allowtrade è falso).

File:
image3.jpg  359 kb