Bence hata, siparişlerinizi verme şeklinizde yatıyor. Stop emirleri kullanıyorsanız, emirleriniz piyasa fiyatına çok yakındır. Tipik olarak, satın alma durağınız mevcut sorudan en az "MarketInfo(Symbol(),MODE_STOPLEVEL)" pip uzakta olmalıdır.
Stop emirleri veriyorsanız, RefreshRates() kullandığınızdan emin olun ve ardından gerekli emirleri mesafeye yerleştirin. Hızlı hareket eden piyasalar için yine de çalışmayabilir ve siparişleri daha uzağa vermeniz gerekecektir.
Bu yardımcı olur umarım.
bu bir al/sat dur değil
Merhaba
Teşekkürler ama dur değil bu bir ticaret - al/sat, deneyeceğim 2*MarketInfo(Symbol(),MODE_STOPLEVEL)
Merhaba
Hata mesajı alıyorum geçersiz durur err 130 yani
Değerlerimi yazdırıyorum ve bunlar aşağıdaki gibidir
2006.06.29 13:15:05 AUDUSD,H1: SiparişAyrıntıları: SatışFiyatı : 0.731 ,CurrentBid : 0.731 ,stoploss : 0.7319 ,getprofit : 0.7291 ,slippage : 2
Sipariş vermeden önce sl ve tp'mi kontrol etmek için aşağıdakileri kullanıyorum
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);
Bazen satış aşağıdaki gibi gerçekleşir
2006.06.29 08:32:56 AUDUSD,H1: açık #5976740 0,7309 sl'den 0,01 AUDUSD sat: 0,7324 tp: 0,7278 tamam
Belki de durak kontrollerim doğru çalışmıyor.
Baska öneri?Belki hem alışta hem de satışta "+ 3" kullanıyorsunuzdur. Satarken geçerli bir fiyat yapmak için "-3" koymalısınız
güçlük bu değil
Piyasa sıkı olduğunda interbankfx'in scalping'i önlemeye çalıştığını düşünmeye başlıyorum. Piyasa sıkı olmadığında çalışır - yine de kafa karıştırıcıdır çünkü kişinin sl ve tp'si MarketInfo(Symbol(),MODE_STOPLEVEL) değerinden büyük olduğunda işlemi açması gerekir.
Neyse İşte kullandığım kod
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);
}
}
Yardım Gerekiyor - Siparişleri açarken hata 138
Merhaba!
Evet, gördüğün gibi ben bu forumda acemiyim. Ben Arjantin'den Ignacio. Ve basit bir EA geliştirmeye çalışıyorum.
Stratejinin "hazır" olduğunu düşünüyorum. Ancak geriye dönük test çalıştırmasını çalıştırdığımda hiçbir sipariş açık değil. Bazı hata ayıklama bilgilerini yazdırdım ve koşullar uygun. OrderSend işlevi tarafından atılan hata 138'dir.
kod şudur:
RefreshRates();
OrderSend( Symbol(), OP_BUY, Lots, Slippage, Ask, 0.0, 0.0, c , magic_number, 0, Blue);
Birisi bana neyin yanlış olduğunu açıklayabilir mi?
Hepinize teşekkür ederim.
imzalamak...
Merhaba!
Evet, gördüğün gibi ben bu forumda acemiyim. Ben Arjantin'den Ignacio. Ve basit bir EA geliştirmeye çalışıyorum.
Stratejinin "hazır" olduğunu düşünüyorum. Ancak geriye dönük test çalıştırmasını çalıştırdığımda hiçbir sipariş açık değil. Bazı hata ayıklama bilgilerini yazdırdım ve koşullar uygun. OrderSend işlevi tarafından atılan hata 138'dir.
kod şudur:
RefreshRates();
OrderSend( Symbol(), OP_BUY, Lots, Slippage, Ask, 0.0, 0.0, c , magic_number, 0, Blue);
Birisi bana neyin yanlış olduğunu açıklayabilir mi?
Hepinize teşekkür ederim.
imzalamak...Hata 138 , bir yeniden alıntı olduğu anlamına gelir. Kayma için 3 ile 5 arasında daha büyük bir pip değeri kullanmayı denediniz mi?
Backtest'te requote diye bir şey olmadığını düşünüyorum. Benim düşünceme göre sorun, geriye dönük testlerde yeniden teklif verme sorununa neden olabilecek "Yenileme Oranları" nedeniyle oluyor. Bunu düşün
if (!isTesting()) RefreshRates();
Cevaplarınız için teşekkürler,
Maji, bir döngüde bazı kayma değerlerini test ettim ve OrderSend bana aynı hatayı veriyor.
elihayun, senin durumunu ekledim ve hala aynı hata.
Birçok test yaptım ve iyi sonuç alamadım
Herhangi bir öneri? Gerçekten başka bir EA daha ciddi hehee yapmak için bunu bitirmek istiyorum.
Hepinize teşekkür ederim
imzalamak...
İlk olarak, hata açıklamasını almak için aşağıdakileri yapın
#property bağlantısından sonra satırı ekleyin
#özellik bağlantısı "http://www.elihayun.com"
#Dahil etmek
şimdi hatayı kontrol etmek için bunu yapın
if (err != 0)
{
Print("Error # ", err, " ", ErrorDescription(err));
}Senin sorunun için başka bir sorun düşünemiyorum. Belki başka bir RefreshRates() kullanıyorsunuzdur.
// YenilemeOranları()
İlk olarak, hata açıklamasını almak için aşağıdakileri yapın
#property bağlantısından sonra satırı ekleyin
#özellik bağlantısı "http://www.elihayun.com"
#Dahil etmek
şimdi hatayı kontrol etmek için bunu yapın
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()İşte senaryo dışı:
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
ve işte kod:
[PHP]
last_ticket = OrderSend( Symbol(), OP_SELL, Lot, Slippage, Bid, 0.0, 0.0, c , magic_number, 0, Red);
if(last_ticket < 0)
{
rv = GetLastError();
Print("Hata Açıklaması [#"+ rv + "]: " + ErrorDescription(rv));
}
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Merhaba
Hata mesajı alıyorum geçersiz durur err 130 yani
Değerlerimi yazdırıyorum ve bunlar aşağıdaki gibidir
2006.06.29 13:15:05 AUDUSD,H1: SiparişAyrıntıları: SatışFiyatı : 0.731 ,CurrentBid : 0.731 ,stoploss : 0.7319 ,getprofit : 0.7291 ,slippage : 2
Sipariş vermeden önce sl ve tp'mi kontrol etmek için aşağıdakileri kullanıyorum
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);
Bazen satış aşağıdaki gibi gerçekleşir
2006.06.29 08:32:56 AUDUSD,H1: açık #5976740 0,7309 sl'den 0,01 AUDUSD sat: 0,7324 tp: 0,7278 tamam
Belki de durak kontrollerim doğru çalışmıyor .
Baska öneri?