Hata #130 geçersiz stoploss ile ilgili Yardıma ihtiyacınız var

 
Sevgili Forum,

Forumda birçok kişinin bu hatayla mücadele ettiğini gördüm.
Diğer konuları anladığım gibi, hata neden olabilir
a: mevcut fiyata çok yakın bir stoploss değeri ayarlamak
b: 0'dan sonra yanlış sayıda basamak

Bir ile ilgili:
Anladığım kadarıyla. MarketInfo(Symbol(), MODE_STOPLEVEL)) bana stoploss'un sahip olması gereken minimum mesafeyi vermelidir.
İşte başarısız bir ticaret örneği:

Marka Bilgisi:
Tarih: 2011/9/15 16:31
Sembol: #ESU1
Durma Seviyesi: 75.00000000
Puan: 0.01000000
Kene Boyutu: 0.25000000
Onay Değeri: 12.5000000
Rakamlar: 2.000000000

Bu nedenle minimum mesafe durma seviyesi * nokta olmalıdır, değil mi? yani 0.75
İşte başarısız siparişim:
2011.09.15 16:32:07 '393930': satış emri 18.00 #ESU1 1201.00 sl'de açılıyor: 1202.35 tp: 0.00 başarısız [Geçersiz S/L veya T/P]
Hata: 130 / geçersiz duraklar

stoploss açılışa 1,35 uzaklıkta. Bu yüzden iyi olmalı. (b) rakamları da eşleşir.
Peki neden bu hatayı alıyorum?

Ayrıca, bu hatayı yeniden oluşturmak zordur. Bazen görünür. Bazen olmuyor.
Bazen birbiri ardına birkaç kez görünür.

Herhangi bir fikir?
Şimdiden teşekkürler!

şinobi
 
Bu hatanın meydana geldiği tam zamanda yayılma neydi?
 

ur kodunda bir hata durumu yapabilir ve RefreshRates() işlevini kullanabilirsiniz.

Nasıl yapacağımı bilmiyorum ama belki böyle bir şey yapabilirsiniz.

if(Ticaret==fase)

{

int ErrorCode= GetLastError();

if (HataKodu=130)

{

Yenileme Oranları();

}

}

yine bu kod doğru olmayabilir, bu yüzden nasıl yapılacağını google'da aramalısınız.

ayrıca, sayıları yuvarlamak için NormalizeDouble işlevini henüz yapmadıysanız.

 
35806 :

ur kodunda bir hata durumu yapabilir ve RefreshRates() işlevini kullanabilirsiniz.

Bu nasıl yardımcı olacak?
 
RaptorUK :
Bu nasıl yardımcı olacak?

geçici bir sorun olabilir. büyük/küçük harfe duyarlı olduğunu, bu nedenle oranların yenilenmesinin sorunu çözebileceğini söyledi.
 
35806 :

geçici bir sorun olabilir. büyük/küçük harfe duyarlı olduğunu, bu nedenle oranların yenilenmesinin sorunu çözebileceğini söyledi.
Herhangi bir kod görmedik. . . Herhangi bir Önceden Tanımlanmış değişken kullanmıyorsa, hiçbir RefreshRates miktarı yardımcı olmaz.
 

doğru.

 
düşünceleriniz için teşekkürler.

Raptor, yukarıdaki ticaretin yayılmasını bilmiyorum. Kod içerisine log çıktısı ekledim, bir dahaki sefere hata oluştuğunda size yayılmayı söyleyebileceğim.
Ama bana söyler misin, yayılma neden önemli ? Stoploss belirlenirken mesafeyi ne şekilde dikkate almam gerekiyor?

Örneğin bir sipariş gönderiyorum:
int bilet = OrderSend(Symbol(), OP_BUY, position_size, Ask, SLIPPAGE, initial_stop, TAKEPROFIT, NULL, EXPERT_ID, 0, Green);

bu nedenle sipariş gönderirken kullandığım tek önceden tanımlanmış değişken: Sor
KAYMA ve TAKEPROFIT'in ikisi de 0'dır.
EXPERT_ID, benzersiz bir sihirli sayıdır
position_size bir tamsayıdır, örneğin 3
initial_stop benim stoploss'um, yani (yukarıdaki örnekte olduğu gibi) Teklif - risk.
İlk gönderide işlem yapılması durumunda risk (MODE_STOPLEVEL * Puan) değerinden daha büyük bir değerdir. Risk şuydu: 1.35
 
shinobi :
düşünceleriniz için teşekkürler.

Raptor, yukarıdaki ticaretin yayılmasını bilmiyorum. Kod içerisine log çıktısı ekledim, bir dahaki sefere hata oluştuğunda size yayılmayı söyleyebileceğim.
Ama bana söyler misin, yayılma neden önemli? Stoploss belirlenirken mesafeyi ne şekilde dikkate almam gerekiyor?


Yazdırmayı gelecek için günlüğe eklediğiniz için aferin :-)

Spread'in nerelerde dikkate alınıp, alınmaması gerektiği konusunda her zaman uzun uzun düşünmek zorundayım. . Söz konusu olduğunda zihinsel bir engelim var gibi görünüyor. . . ama sanırım bu doğru.

Bir Satın Alma için önemli olmamalı, Sor'da Satın Al, SL Bid'de gerçekleşecek, bu nedenle Fark zaten OpenPrice'ınıza dahil edilmiştir. Bir Sat için bu farklı bir konudur. . Bid'de satarsınız ve SL'niz Satış fiyatından alınır. . . Ask fiyatı nerede? iyi o zaman yayılmasına bağlıdır. . . Bunun doğru olduğunu düşünüyorum, lütfen bir düşünün ve mantıklı olup olmadığına bakın. . . Yanlışım varsa düzeltilirse sevinirim. . . :-)

 
int ticket = OrderSend ( Symbol (), OP_BUY, position_size, Ask, SLIPPAGE, initial_stop, TAKEPROFIT, NULL , EXPERT_ID, 0 , Green );
EA'lar 4/5 basamaklı brokerler, TP, SL ve VE kayması için ayarlama yapmalıdır. ECN brokerlerinde açmalı ve SONRA durdurmalısınız.
 //++++ These are adjusted for 5 digit brokers.
int      pips2points;     // slippage  3 pips    3=points    30=points
double   pips2dbl;       // Stoploss 15 pips    0.0015      0.00150
int      Digits .pips;     // DoubleToStr(dbl/pips2dbl, Digits.pips)
int      init(){
     if ( Digits % 2 == 1 ){       // DE30=1/JPY=3/EURUSD=5 forum.mql4.com/43064#515262
                pips2dbl    = Point * 10 ; pips2points = 10 ;   Digits .pips = 1 ;
    } else {    pips2dbl    = Point ;    pips2points =   1 ;   Digits .pips = 0 ; }
     // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//---- These are adjusted for 5 digit brokers.
     /* On ECN brokers you must open first and THEN set stops
    int ticket = OrderSend(...)
    if (ticket < 0)
       Alert("OrderSend failed: ", GetLastError());
    else if (!OrderSelect(ticket, SELECT_BY_POS))
       Alert("OrderSelect failed: ", GetLastError());
    else if (!OrderModify(OrderTicket()...)
       Alert("OrderModify failed: ", GetLastError());
     */
 
35806 :

geçici bir sorun olabilir. büyük/küçük harfe duyarlı olduğunu, bu nedenle oranların yenilenmesinin sorunu çözebileceğini söyledi.
AFAIK RefreshRates() hatası 130 ile ilgisi yok