Hatalar, hatalar, sorular - sayfa 111

 
sergeev :

her şey eşleşti.

2010.08.28 20:57:09 Servis (EURUSD,H1) L1=6653490000 L2=6653490000 L3=6653490000 M1=6653490000
2010.08.28 20:57:09 Servis (EURUSD,H1) A=665349 B=665349 C=665349
2010.08.28 20:57:09 Servis (EURUSD,H1) --- OnInit() --- 1 --- !!! Başlangıç parametrelerinin hazırlanmasının başlangıcı !!!


ve benim M1 eşleşmedi

PQ       0        Servis (EURUSD,H8)       22 : 06 : 24         --- OnInit () --- 1 --- !!!  Старт  подготовки начальных параметров  !!!
LE       0        Servis (EURUSD,H8)       22 : 06 : 24          A= 100652   B= 100652   C= 100652
CP       0        Servis (EURUSD,H8)       22 : 06 : 24          L1= 1006520000    L2= 1006520000    L3= 1006520000    M1= 4294966006
 
sergey1294 :

İlk numarayı almak için neye ihtiyacınız olduğuna bağlı olarak, bunu deneyebilirsiniz

evet, daha basit, sonunda fazladan alıntı yapamazsınız bile
 return ( StringToTime (( string )str.year+ "." +( string )str.mon+ ".01 00:00" ));
 
SHOOTER777 :

Meraklı beyinlere bir kez daha sesleniyorum!

Ekli kod

Eğer hala programlamada bir şeyler anlıyorsam, o zaman L1 = L2 = L3 = M1 olmalı, öyle değilim! peki sen?

İlk başta derleyici "#import "lbS7N_Servis.ex5"" dosyasının yokluğundan şikayet etti.

Bu satırı kaldırdıktan sonra şunu anladım:

2010.08.28 22:19:51 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=6617010000 M1=1016990000
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) A=101699 B=101699 C=661701
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !!! Başlangıç parametrelerinin hazırlanmasının başlangıcı!!!

Koddaki hesap numarasını kendi numaramla değiştirdiğimde:

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=1016990000 M1=1016990000

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) A=101699 B=101699 C=101699

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !!! Başlangıç parametrelerinin hazırlanmasının başlangıcı!!!

MQ sunucusu, 316 oluştur.

 
sergey1294 :

ve benim M1 eşleşmedi

özel durum... :(
 
SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_LIMIT ), neden boş dönüyor?
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
sergeev :
özel durum... :(

Ayrıca, üç benzersiz durum kadar. Bu keşfedilir. Ve kaç tanesi bulunamadı?

Ve bu durum göz önüne alındığında, MetaQuotes 2010 Şampiyonası'na bir ay sonra mı başlayacak?

Ah, MetaTrader 5 bizim için kaç tane "harika" keşif hazırlıyor...

 
Kos :
SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_LIMIT ), neden boş dönüyor?

Ayrıca, başarılı bir yürütme işareti döndüren sürüm (yardımda 2 olarak belirlenmiştir. İşlevin başarısına bağlı olarak doğru veya yanlış döndürür. Başarılı olursa, özellik değeri, referans olarak iletilen alıcı değişkene yerleştirilir. son parametre. ) aramanın başarısını bildirir:

 void OnStart ()
{
   double SymbolVolumeLimit1 = SymbolInfoDouble ( Symbol (), SYMBOL_VOLUME_LIMIT );
   double SymbolVolumeLimit2 = DBL_MAX ;

   Print ( "Symbol() = " , Symbol (), ", bool SymbolInfoDouble() = " , SymbolInfoDouble ( Symbol (), SYMBOL_VOLUME_LIMIT , SymbolVolumeLimit2));
   Print ( "SymbolVolumeLimit1 = " , SymbolVolumeLimit1, ", SymbolVolumeLimit2 = " , SymbolVolumeLimit2);
}

/* Вывод в лог (хронология - сверху вниз):
JN      0       1 (EURUSD,M15)  02:41:18        Symbol() = EURUSD, bool SymbolInfoDouble() = true
JJ      0       1 (EURUSD,M15)  02:41:18        SymbolVolumeLimit1 = 0, SymbolVolumeLimit2 = 0
*/

SymbolInfoDouble() işlevinin ikinci sürümü, başarılı olduğu anlamına gelen true değerini döndürdü. Bu, başlangıçta DBL_MAX değeriyle başlatılan, ancak 0 değerini alan SymbolInfoDouble() çağrıldıktan sonra, SymbolVolumeLimit2 değişkeninin değerinden de görülebilir.

Ve MetaQuotes'a göre, 2010 Şampiyonası'ndaki Uzman Danışmanlar, bu koşullar altında bu tür işlevler tarafından döndürülen değerlere nasıl güvenmeli ve sabit kodlanmış değerleri kullanmamalı?

 

OrderCheck işlevini kimler kullandı?

İşte böyle bir tasarım:

           MqlTradeRequest request;
           request.action=TRADE_ACTION_DEAL;
           request.symbol=_Symbol;
           request.volume=volume_exe;
           request.price=SymbolInfoDouble(_Symbol, SYMBOL_ASK);
           request.sl=0;
           request.tp=0;
           request.deviation=SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)*2;
           request.type=ORDER_TYPE_BUY;
           request.type_filling=ORDER_FILLING_CANCEL;
           MqlTradeResult result;
           OrderCheck(request, result);
           if(OrderSend(request, result)==false)

Derlerken bir hata alıyorum: 'sonuç' - parametre dönüştürmeye izin verilmiyor.

OrderCheck kaldırılırsa, her şey normal şekilde derlenir ve test cihazında bir pozisyon açılır .

 

Ve işte ne olduğu...

 Alert ( " прибыль=" ,ПросчетПрибылизаПериод( D'2010.08.01 00:00:00' ));


double ПросчетПрибылизаПериод( datetime датаначалапросчетаприбыли)
  {
   int i;
   double прибыльзапериод;
   ulong тикет;
   HistorySelect (датаначалапросчетаприбыли, TimeCurrent ());
   //HistorySelect(D'2010.08.20 00:00:00',D'2010.08.20 23:59:00');
   for (i= 1 ;i<= HistoryDealsTotal ();i=i+ 1 )
     {
      тикет= HistoryDealGetTicket (i);
       if ( HistoryDealGetInteger (тикет, DEAL_TYPE )== DEAL_ENTRY_IN || HistoryDealGetInteger (тикет, DEAL_TYPE )== DEAL_ENTRY_STATE )
         continue ;
      прибыльзапериод=прибыльзапериод+ HistoryDealGetDouble (тикет, DEAL_PROFIT )+ HistoryDealGetDouble (тикет, DEAL_COMMISSION )+ HistoryDealGetDouble (тикет, DEAL_SWAP );
     }
   return (прибыльзапериод);
  }

Belirtilen tarihten itibaren işlemlerden elde edilen kar dikkate alınmalıdır. Gerçekte olduğundan tamamen farklı bir sonuç üretir. Örneğin 2000 civarı bir sonuç yerine 611 alıyorum. Güne göre kontrol etmeye başladım (yorum satırı). Sonucun aynı olduğu (!!) günler oluyor ama genelde olması gerektiği gibi olmuyor... (Kelime bulamadım). Ayrıca, hata ayıklayıcıda döngü, tüm işlem sayısından doğru bir şekilde geçer. Doğru, sadece bu işlem sayısını takip edebiliyorum çünkü int değişkenleri dışında başka hiçbir değer görüntülenmiyor (Expression değerlendirilemedi diyor).

Kod doğru mu ve hata ayıklayıcıyı doğru mu kullanıyorum...?

 
SHOOTER777 :

Teşekkür ederim. Sonra geliştiricilerle iletişime geçeceğim.

Merhaba! Yapı numarasını , işletim sistemini, bit derinliğini belirttiğiniz ve kodu eklediğiniz hizmet masasında durumunuzu ayrıntılı olarak açıklayın.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5