[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 391

 
Snegovik :


ikinci alımda aynı anda bir sembolde satışı açan komut dosyaları var.

ve her bir sembol için hacimce belirtilen 7-10 sembolde cari fiyatlarla aynı anda sat / al'ı açabilen bir komut dosyasıyla ilgileniyorum.

Misal:

EURUSD 1 satmak

USDUSD 1.5 satın al

USDCAD 1.2 satmak

AUDUSD 1.1 satın al

NZDUSD 2 satın al

USDCHF 3 satın al

MultiOrders betiği neredeyse mükemmel, semboller için sadece 5 alan var. ve daha fazlasını nasıl ekleyeceğinizi bilmiyorum.

Aynı şekilde. Bu betiği anlayın ve betiğinizde daha da iyi olacak ve hatta ek işlevler ekleyebileceksiniz.
 
snail09_1 :
Kontrol etmek zor mu yoksa tembel mi? Soru sormak daha kolay. Teklif fiyatı sıfır olabilir mi? Belki satılık bir şey yoksa8-(
mesele bu değil, terminal bir noktada teklifi sıfırlayabilir mi (kişisel deneyim ilginçtir)
 
YOUNGA :
mesele bu değil, terminal bir noktada teklifi sıfırlayabilir mi (kişisel deneyim ilginçtir)

Hiç görmedim. Bir termometrede mutlak sıfır gördünüz mü?

Sorun bu olmayabilir. M.b. Konuşacak kimsen yok mu?

 
snail09_1 :
Aynı şekilde. Bu betiği anlayın ve betiğinizde daha da iyi olacak ve hatta ek işlevler ekleyebileceksiniz.


.dll yazmayı tam olarak anlamıyorum

Doğru anladıysam betiğin temeli bu dosyada.

 
Çocuklar! Tarih stratejisi test cihazında EA, yalnızca çevrimiçi ticaret yaparken bilgileri bir dosyaya dökmez. Neyle bağlantılı ve nasıl tedavi edilir? Teşekkür ederim.
 
net :
Çocuklar! Tarih stratejisi test cihazında EA, yalnızca çevrimiçi ticaret yaparken bilgileri bir dosyaya dökmez. Neyle bağlantılı ve nasıl tedavi edilir? Teşekkür ederim.
Yalnızca \MetaTrader 4\tester\experts\files dizinine düşer
 
Snegovik :


.dll yazmayı tam olarak anlamıyorum

Doğru anladıysam betiğin temeli bu dosyada.


Tek bir komut dosyası, aynı anda birkaç siparişi açmak için sunucuya bir sipariş gönderemez. Bir tane açmalısın. Size sunulan DLL basitçe görsel bir pencere oluşturur ve onunla çalışır. Göreviniz için MQL4 araçlarıyla yapabilirsiniz
 

İşte benim lot (martin) hesaplama fonksiyonum:

 double Lots()
 {
 //  double LotsArray[]={mode_1,mode_2,mode_3,mode_4,mode_5,mode_6};
 //  double LotsArray[]= {0.1,0.2,0.3,0.4,0.5,0.6};
   int LossCount = 0 ;
   double LotM=Lot;
   int total = OrdersHistoryTotal ();
   for ( int i = total- 1 ; i >= 0 ; i--)
    {
      OrderSelect (i, SELECT_BY_POS, MODE_HISTORY);
      if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic)
       {
         if ( OrderProfit () > 0 )
          {
            LotM=LotsArray[ 0 ];
          }         
          else
           {
            LotM=LotsArray[LossCount+ 1 ];
            LossCount++;
           }
       }
    }
   return (LotM);
}

Bunlar, bu işlev için genel değişkenlerdir:

 double Lot = 0.1 ;
extern double mode_1 = 0.1 ;
extern double mode_2 = 0.2 ;
extern double mode_3 = 0.4 ;
extern double mode_4 = 0.8 ;
extern double mode_5 = 1.6 ;
extern double mode_6 = 3.2 ;
double LotsArray[ 5 ];

İşte int init() içindekiler

 LotsArray[ 0 ] = mode_1;
 LotsArray[ 1 ] = mode_2;
 LotsArray[ 2 ] = mode_3;
 LotsArray[ 3 ] = mode_4;
 LotsArray[ 4 ] = mode_5;
 LotsArray[ 5 ] = mode_6;

Expert Advisor'ın testleri sırasında, uzman günlüğünde aşağıdaki hatalar görüntülenir:

 2012.09 . 19 23 : 14 : 22     2012.07 . 19 16 : 19  mmm2. 1.1 ~ EURUSD. 5 ,M5: ERROR BUYSTOP : 1.22443 SL: 1.22377 TP: 1.22506
2012.09 . 19 23 : 14 : 22     2012.07 . 19 16 : 19  mmm2. 1.1 ~ EURUSD. 5 ,M5: OrderSend error 4051
2012.09 . 19 23 : 14 : 22     2012.07 . 19 16 : 19  mmm2. 1.1 ~ EURUSD. 5 ,M5: invalid lots amount for OrderSend function
2012.09 . 19 23 : 14 : 22     2012.07 . 19 16 : 19  mmm2. 1.1 ~ EURUSD. 5 ,M5: Bid: 1.22432 Ask: 1.22438 avgSpread: 0.00006  Commission rate: 0.00003  Real avg. spread: 0.00009  Lots: 1.00   HIGH SPEED   MAX
2012.09 . 19 23 : 14 : 22     2012.07 . 19 16 : 19  mmm2. 1.1 ~ EURUSD. 5 ,M5: 2012.07 . 19 16 : 19 tick: 514
2012.09 . 19 23 : 14 : 22     2012.07 . 19 16 : 19  mmm2. 1.1 ~ EURUSD. 5 ,M5: ERROR BUYSTOP : 1.22442 SL: 1.22376 TP: 1.22505
2012.09 . 19 23 : 14 : 22     2012.07 . 19 16 : 19  mmm2. 1.1 ~ EURUSD. 5 ,M5: OrderSend error 4051
2012.09 . 19 23 : 14 : 22     2012.07 . 19 16 : 19  mmm2. 1.1 ~ EURUSD. 5 ,M5: invalid lots amount for OrderSend function
2012.09 . 19 23 : 14 : 22     2012.07 . 19 16 : 19  mmm2. 1.1 ~ EURUSD. 5 ,M5: Bid: 1.22431 Ask: 1.22437 avgSpread: 0.00006  Commission rate: 0.00003  Real avg. spread: 0.00009  Lots: 1.00   HIGH SPEED   MAX
2012.09 . 19 23 : 14 : 22     2012.07 . 19 16 : 19  mmm2. 1.1 ~ EURUSD. 5 ,M5: 2012.07 . 19 16 : 19 tick: 513

Kodda yanlış bir şey mi var? Ne anlama geliyor?

Burada https://docs.mql4.com/ru/runtime/errors Bunun bir hata olduğunu görüyorum:

ERR_INVALID_FUNCTION_PARAMVALUE (4051)

Onlar. hata geçersiz parametrelerden kaynaklanmaktadır. Anladığım kadarıyla yanlış parti. Ama burada neyin yanlış olduğunu anlamıyorum.

 
hoz :

İşte benim lot (martin) hesaplama fonksiyonum:

Bunlar, bu işlev için genel değişkenlerdir:

İşte int init() içindekiler

Uzman Danışmanı test ederken, uzman günlüğünde aşağıdaki hatalar görüntülenir:

Kodda yanlış bir şey mi var? Ne anlama geliyor?

Burada https://docs.mql4.com/en/runtime/errors Bunun bir hata olduğunu görüyorum:

ERR_INVALID_FUNCTION_PARAMVALUE (4051)

Onlar. hata geçersiz parametrelerden kaynaklanmaktadır. Anladığım kadarıyla yanlış parti. Ama burada neyin yanlış olduğunu anlamıyorum.


double LotsArray[5]; 5 ila 6 düzeltme.
 
merhaba! Bir siparişi bir kez değiştirmek mümkün müdür? Artık her tikte değiştirilen bir siparişim var! Bunun doğru olduğunu düşünmüyorum...