Penso che l'errore risieda nel modo in cui stai piazzando i tuoi ordini. Se stai usando ordini stop, allora i tuoi ordini sono troppo vicini al prezzo di mercato. In genere, il tuo stop di acquisto dovrebbe essere almeno "MarketInfo(Symbol(),MODE_STOPLEVEL)" a pip di distanza dall'attuale ask.
Se stai piazzando ordini di stop, assicurati di usare RefreshRates() e poi piazza gli ordini alla distanza richiesta. Per i mercati in rapido movimento, potrebbe ancora non funzionare e dovrai piazzare gli ordini più lontano.
Spero che questo aiuti.
è un acquisto/vendita non stop
Ciao
Grazie ma non è uno stop è un trade - buy/sell, proverò 2*MarketInfo(Symbol(),MODE_STOPLEVEL)
Ciao
Ricevo il messaggio di errore invalid stops err 130 cioè.
Stampo i miei valori e sono i seguenti
2006.06.29 13:15:05 AUDUSD,H1: OrderDetails: SellPrice : 0.731 ,CurrentBid : 0.731 ,stoploss : 0.7319 ,takeprofit : 0.7291 ,slippage : 2
Sto usando il seguente per controllare i miei sl e tp prima di piazzare l'ordine
if (StopLoss<=MarketInfo(Symbol(),MODE_STOPLEVEL)) StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL)+3;
if (TakeProfit<=MarketInfo(Symbol(),MODE_STOPLEVEL)) TakeProfit=2*(MarketInfo(Symbol(),MODE_STOPLEVEL)+3);
A volte la vendita va a buon fine come la seguente
2006.06.29 08:32:56 AUDUSD,H1: open #5976740 sell 0.01 AUDUSD at 0.7309 sl: 0.7324 tp: 0.7278 ok
Forse il mio controllo degli stop non funziona correttamente.
Qualche suggerimento?Forse stai usando "+ 3" sia in acquisto che in vendita. In vendita devi mettere "-3" per renderlo un prezzo valido
questo non è il fastidio
Sto cominciando a pensare che sia interbankfx che cerca di impedire lo scalping quando il mercato è stretto. Funziona quando il mercato non è stretto - ancora è confuso come una volta che uno sl e tp sono maggiori poi MarketInfo(Symbol(),MODE_STOPLEVEL) dovrebbe aprire il commercio.
Comunque ecco il codice che uso
StopLoss = NormalizeDouble((TradeAbovePct/100)*(DemaH-DemaL)*(1/Point),0);
if (StopLoss<=MarketInfo(Symbol(),MODE_STOPLEVEL)) StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL)+3;
TakeProfit = NormalizeDouble(2*((DemaH-DemaL)*(1/Point)),0);
if (TakeProfit<=MarketInfo(Symbol(),MODE_STOPLEVEL)) TakeProfit=2*(MarketInfo(Symbol(),MODE_STOPLEVEL)+3);
//Then I call a buy and sell as needed
//e.i
OpenBuy1(10);
OpenSell1(10);
////////////////////////////////////////////////
bool OpenBuy1(int pips1)
{
int ticket;
string comment="";
//reset defaults
use_MTBE = use_MTBEd;
use_split = use_splitd;
RefreshRates();
price1 = Ask;
stoploss1 = NormalizeDouble(price1-StopLoss*Point,Digits);
tp1 = NormalizeDouble(price1+TakeProfit*Point,Digits);
//expire1 = iTime(Symbol(),TimeFrame,0)+TimeFrame*HoursStopOpen*60;
Print("Openbuy lots: ", Lots);
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_BUY,Lots,price1,2,stoploss1,tp1,comment,MAGICMA,0,Orange);
else
ticket=OrderSend(Symbol(),OP_BUY,Lots,price1,2,0,tp1,comment,MAGICMA,0,Orange);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("BUY order opened : ",OrderOpenPrice());
//time1 = CurTime()+2*60*Period();
return(true);
}
}
else
{
Print("Error opening BUY order : ",GetLastError());
Print("OrderDetails: BuyPrice : ",price1," ,CurrentAsk : ", Ask," ,stoploss : ",stoploss1," ,takeprofit : ",tp1," ,slippage : ",2);
return(false);
}
}
bool OpenSell1(int pips1)
{
int ticket;
string comment="";
//reset defaults
use_MTBE = use_MTBEd;
use_split = use_splitd;
RefreshRates();
price1 = Bid;
stoploss1 = NormalizeDouble(price1+StopLoss*Point,Digits) ;
tp1 = NormalizeDouble(price1-TakeProfit*Point,Digits);
// expire1 = iTime(Symbol(),TimeFrame,0)+TimeFrame*HoursStopOpen*60;
Print("Opensell lots: ", Lots);
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_SELL,Lots,price1,2,stoploss1,tp1,comment,MAGICMA,0,Red);
else
ticket=OrderSend(Symbol(),OP_SELL,Lots,price1,2,0,tp1,comment,MAGICMA,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("SELL order opened : ",OrderOpenPrice());
// time1 = CurTime()+2*60*Period();
return(true);
}
}
else
{
Print("Error opening SELL order : ",GetLastError());
Print("OrderDetails: SellPrice : ",price1," ,CurrentBid : ", Bid," ,stoploss : ",stoploss1," ,takeprofit : ",tp1," ,slippage : ",2);
return(false);
}
}
Aiuto necessario - Errore 138 apertura ordini
Ciao!
Come potete vedere, sono un novellino in questo forum. Sono Ignacio, dall'Argentina. E sto cercando di sviluppare un semplice EA.
Penso che la strategia sia "pronta". Ma quando eseguo il backtest, non ci sono ordini aperti. Ho stampato alcune informazioni di debug e le condizioni sono OK. L'errore lanciato dalla funzione OrderSend è 138.
Il codice è il seguente:
RefreshRates();
OrderSend( Symbol(), OP_BUY, Lots, Slippage, Ask, 0.0, 0.0, c , magic_number, 0, Blue);
Qualcuno può spiegarmi cosa c'è che non va?
Grazie a tutti.
ign...
Ciao!
Bene, come potete vedere, sono un novellino in questo forum. Sono Ignacio, dall'Argentina. E sto cercando di sviluppare un semplice EA.
Penso che la strategia sia "pronta". Ma quando eseguo il backtest, non ci sono ordini aperti. Ho stampato alcune informazioni di debug e le condizioni sono OK. L'errore lanciato dalla funzione OrderSend è 138.
Il codice è il seguente:
RefreshRates();
OrderSend( Symbol(), OP_BUY, Lots, Slippage, Ask, 0.0, 0.0, c , magic_number, 0, Blue);
Qualcuno può spiegarmi cosa c'è che non va?
Grazie a tutti.
ignorare...L'errore 138 significa che c'è stato un requote. Hai provato a usare un valore di pip più grande per lo slippage, qualcosa come tra 3 e 5?
Penso che non esista il problema del requote in backtesting. Il problema, secondo me, si verifica a causa dei "RefreshRates" che forse in backtesting possono causare un problema di requote. Considerate questo
se (!isTesting()) RefreshRates();
Grazie per le vostre risposte,
Maji, ho provato alcuni valori di slippage in un ciclo e OrderSend mi dà lo stesso errore.
elihayun, ho aggiunto correttamente la tua condizione e ancora lo stesso errore.
Ho fatto molti test e nessun buon risultato
Qualche suggerimento? Voglio davvero finire questo per fare un altro EA più serio hehee.
Grazie a tutti
ign...
Per prima cosa, per ottenere la descrizione dell'errore fate come segue
dopo il link #property aggiungi la linea
#property link "http://www.elihayun.com"
#include
ora per controllare l'errore fai così
if (err != 0)
{
Print("Error # ", err, " ", ErrorDescription(err));
}Per il tuo problema, non riesco a pensare a un altro problema. Forse stai usando un altro RefreshRates() Prova a commentarlo
// RefreshRates()
Per prima cosa, per ottenere la descrizione dell'errore fare quanto segue
dopo il link #property aggiungere la linea
#proprietà link "http://www.elihayun.com"
#include
ora per controllare l'errore fate così
if (err != 0)
{
Print("Error # ", err, " ", ErrorDescription(err));
}[/PHP]
For your problem, I cannot think of another problem. Maybe u are using another RefreshRates() Try to comment them out
// RefreshRates()Ecco l'out of script:
2006.07.02 11:07:15 2006.01.04 12:00 eaButler EURUSD,H4: Error Description [#138]: requote
2006.07.02 11:07:15 2006.01.04 12:00 stdlib EURUSD,H4: loaded successfully
ed ecco il codice:
[PHP]
last_ticket = OrderSend( Symbol(), OP_SELL, Lots, Slippage, Bid, 0.0, 0.0, c , magic_number, 0, Red);
if(last_ticket < 0)
{
rv = GetLastError();
Print("Descrizione dell'errore [#"+ rv + "]: " + ErrorDescription(rv));
}
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Ciao
Sto ricevendo il messaggio di errore invalid stops err 130 cioè.
Stampo i miei valori e sono i seguenti
2006.06.29 13:15:05 AUDUSD,H1: OrderDetails: SellPrice : 0.731 ,CurrentBid : 0.731 ,stoploss : 0.7319 ,takeprofit : 0.7291 ,slippage : 2
Sto usando il seguente per controllare i miei sl e tp prima di piazzare l'ordine
if (StopLoss<=MarketInfo(Symbol(),MODE_STOPLEVEL)) StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL)+3;
if (TakeProfit<=MarketInfo(Symbol(),MODE_STOPLEVEL)) TakeProfit=2*(MarketInfo(Symbol(),MODE_STOPLEVEL)+3);
A volte la vendita va a buon fine come la seguente
2006.06.29 08:32:56 AUDUSD,H1: open #5976740 sell 0.01 AUDUSD at 0.7309 sl: 0.7324 tp: 0.7278 ok
Forse il mio controllo degli stop non funziona correttamente.
Qualche suggerimento?