[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 502

 
düzenleme | sil Kaymayı hesaba katarak ve 130-134 hatası olmadan sipariş vermek için bir fonksiyon bulmama yardım et.
 
nuan :
düzenleme | sil Kaymayı hesaba katarak ve 130-134 hatası olmadan sipariş vermek için bir fonksiyon bulmama yardım et.

Bana seçimini göster.
 
NumderOrder=SiparişGönder(Symbol(),OP_BUY,0.01,Ask,3,Ask-SL*Point,Ask+TP*Point,"SATIN AL",0,0,Kırmızı);

Yazdır( GetLastError() );

SL ve TP'nin herhangi bir değeri için 134 verir, genellikle hiç sipariş vermez.

if(NumberOfOrders(NULL)==0) açılır


test cihazında bir sipariş yerine sürekli bir paket yerleştiriyor, neden anlayamadım, yani. bu çiftte başka kimse açık değilse sipariş vermelidir

 
üzgünüm, neden bir sipariş verilmedi
 
nuan :
NumderOrder=SiparişGönder(Symbol(),OP_BUY,0.01,Ask,3,Ask-SL*Point,Ask+TP*Point,"SATIN AL",0,0,Kırmızı);

Yazdır(GetLastError());

SL ve TP'nin herhangi bir değeri için 134 verir, genellikle hiç sipariş vermez.

if(NumberOfOrders(NULL)==0) açılır


test cihazında bir sipariş yerine sürekli bir paket yerleştiriyor, neden anlayamadım, yani. bu çiftte başka kimse açık değilse sipariş vermelidir


ERR_NOT_ENOUGH_MONEY 134 İşlemi tamamlamak için yeterli para yok
 

Güzel gün. Bir danışman yapıyorum, belirli bir durumda 2 emir açıyor (mecazi olarak diyelim: fiyat yükseldiğinde ve düştüğünde). Arttırırken 2 açılır, fiyat düştüğünde bu 2'si kapanır ve yeni 2'si açılır.Bir emir kar almadan, ikincisi alımla gider. Sorun ikincisinde. Ölüm saati geldiğinde, o seçilmez, işte emirleri silmek için kod:

 for ( int a = 0 ; a < OrdersTotal ()- 1 ; a++)
     if ( OrderSelect (a, SELECT_BY_POS, MODE_TRADES))
         if ( OrderComment () == "MyOrd" && OrderType () == OP_SELL)
             OrderClose ( OrderTicket (), NormalizeDouble ( OrderLots (), Digits ), NormalizeDouble (Ask, Digits ), 0 );

OP_BUY için aynı. Bunun kalemler veya başka bir danışman tarafından değil, danışmanım tarafından açılan bir emir olduğundan emin olmak için yorumları karşılaştırırım. İşte OrderSelect ile ilgili sorun, sadece bir kar al emri seçmek istemiyor. a numarasına ulaştığında, OrderSelect false döndürür. Tester günlüğünde hata yok, GetLastError ayrıca her şeyin yolunda olduğunu söylüyor (0 döndürür). Neden seçilmiyor? Eğer seçememişse neden hata yok? Herkese teşekkürler.

 
Bir takip sorusu. Neden test cihazında, süreyi bir ay+ olarak ayarladığımda sonuçlarda beş basamak görünüyor? Fiyatlar nerede belirlenirse, NormalizeDouble(SomeValue, Digits) var. Ve sadece sonuçlarda, dergi küfretmez, ancak yuvarlama işlevi hakkında henüz bir şey bilmediğinde lanetlendi.
 

koşul

a < OrdersTotal ()- 1

her yinelemede kontrol edilir.

düşün - ilk yinelemeden sonra ne a 'ya eşit olacak ve ne OrdersTotal() -1 - olacak

 
Solree :

OrderClose(OrderTicket(), NormalizeDouble(OrderLots(), Digits), NormalizeDouble(Ask, Digits), 0);

Parti ve fiyat farklı Rakamlara sahiptir.
 

Solree :

NormalizeDouble ( OrderLots (), Rakamlar )


ve yine de - çoğu şeyi normalleştirmek o kadar kolay değil.
izin verilen parti değişikliği adımını dikkate almak gerekir.
örneğin, adım 0,01 ise, 2 ile normalleştirme
ve eğer adım 0.1 ise, o zaman 1 ile normalleştirme