Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 31

 
Evet, elbette, fikri doğru kodladım, ancak ilk beşte, yazdırma işlevi bir şekilde fırfırlar ile böyle çalışmıyor ve çoğu zaman yazmıyor. Evet!!
 
Dimka-novitsek :

Aha, bu aslında bana önerilen komut dosyası, görünüşe göre fonksiyona eklediğim yazıyor, Uzman Danışmanımın işareti!

Hayır, bu bir senaryo değil. Bunlar senin çizgilerin. Komut dosyası Print ( EnumToString (( ENUM_TIMEFRAMES )i) + "=" + IntegerToString (i));
 
Dimka-novitsek :
... ilk beşte, yazdırma işlevi bir şekilde hilelerle böyle çalışmıyor ve çoğu zaman yazmıyor. Evet!!
Çalışan bir programın tüm mesajları Uzman sekmesinde görüntülenmeyebilir. Tüm mesajları görüntülemek için günlüklere bakmanız gerekir (farenin sağ tuşu, "Aç").
 

Saçmalık. anladım) CSymbolInfo.Refresh() işlevinin keneleri güncellemediği ortaya çıktı. bunun yerine, CSymbolInfo .RefreshRates();

CSymbolInfo.Refresh() - Bir sembol için verileri yeniler

CSymbolInfo.RefreshRates() - tırnak işaretlerini yeniler=)

İkinci yöntemle her şey netleştiyse, ama ilki ne için?

 
WiND :

Saçmalık. anladım) CSymbolInfo.Refresh() işlevinin keneleri güncellemediği ortaya çıktı. bunun yerine, CSymbolInfo.RefreshRates();

CSymbolInfo.Refresh() - Bir sembol için verileri yeniler

CSymbolInfo.RefreshRates() - tırnak işaretlerini yeniler=)

İkinci yöntemle her şey netleştiyse, ama ilki ne için?

Pek değil. Belki birisinin takaslarla ilgili verileri güncellemesi, piyasaya girerken fonları kontrol etmesi vb. Ayrıntılar için koda bakın:
 bool CSymbolInfo::Refresh( void )
  {
   long tmp= 0 ;
//---
   if (! SymbolInfoDouble (m_name, SYMBOL_POINT ,m_point))                               return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_TRADE_TICK_VALUE ,m_tick_value))               return ( false );
   if (! SymbolInfoDouble (m_name,SYMBOL_TRADE_TICK_VALUE_PROFIT,m_tick_value_profit)) return ( false );
   if (! SymbolInfoDouble (m_name,SYMBOL_TRADE_TICK_VALUE_LOSS,m_tick_value_loss))     return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_TRADE_TICK_SIZE ,m_tick_size))                 return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_TRADE_CONTRACT_SIZE ,m_contract_size))         return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_VOLUME_MIN ,m_lots_min))                       return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_VOLUME_MAX ,m_lots_max))                       return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_VOLUME_STEP ,m_lots_step))                     return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_VOLUME_LIMIT ,m_lots_limit))                   return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_SWAP_LONG ,m_swap_long))                       return ( false );
   if (! SymbolInfoDouble (m_name, SYMBOL_SWAP_SHORT ,m_swap_short))                     return ( false );
   if (! SymbolInfoInteger (m_name, SYMBOL_DIGITS ,tmp))                                 return ( false );
   m_digits=( int )tmp;
   if (! SymbolInfoInteger (m_name, SYMBOL_TRADE_EXEMODE ,tmp))                           return ( false );
   m_trade_execution=( ENUM_SYMBOL_TRADE_EXECUTION )tmp;
   if (! SymbolInfoInteger (m_name, SYMBOL_TRADE_CALC_MODE ,tmp))                         return ( false );
   m_trade_calcmode=( ENUM_SYMBOL_CALC_MODE )tmp;
   if (! SymbolInfoInteger (m_name, SYMBOL_TRADE_MODE ,tmp))                             return ( false );
   m_trade_mode=( ENUM_SYMBOL_TRADE_MODE )tmp;
   if (! SymbolInfoInteger (m_name, SYMBOL_SWAP_MODE ,tmp))                               return ( false );
   m_swap_mode=( ENUM_SYMBOL_SWAP_MODE )tmp;
   if (! SymbolInfoInteger (m_name, SYMBOL_SWAP_ROLLOVER3DAYS ,tmp))                     return ( false );
   m_swap3=( ENUM_DAY_OF_WEEK )tmp;
   if (! SymbolInfoDouble (m_name,SYMBOL_MARGIN_INITIAL,m_margin_initial))             return ( false );
   if (! SymbolInfoDouble (m_name,SYMBOL_MARGIN_MAINTENANCE,m_margin_maintenance))     return ( false );
   if (! SymbolInfoDouble (m_name,SYMBOL_MARGIN_LONG,m_margin_long))                   return ( false );
   if (! SymbolInfoDouble (m_name,SYMBOL_MARGIN_SHORT,m_margin_short))                 return ( false );
   if (! SymbolInfoDouble (m_name,SYMBOL_MARGIN_LIMIT,m_margin_limit))                 return ( false );
   if (! SymbolInfoDouble (m_name,SYMBOL_MARGIN_STOP,m_margin_stop))                   return ( false );
   if (! SymbolInfoDouble (m_name,SYMBOL_MARGIN_STOPLIMIT,m_margin_stoplimit))         return ( false );
   if (! SymbolInfoInteger (m_name,SYMBOL_EXPIRATION_MODE,tmp))                         return ( false );
   m_trade_time_flags=( int )tmp;
   if (! SymbolInfoInteger (m_name,SYMBOL_FILLING_MODE,tmp))                           return ( false );
   m_trade_fill_flags=( int )tmp;
//--- ok
   return ( true );
  }
Документация по MQL5: Торговые функции / OrderCheck
Документация по MQL5: Торговые функции / OrderCheck
  • www.mql5.com
Торговые функции / OrderCheck - Документация по MQL5
 

TEŞEKKÜR EDERİM!!!

Tabii ki satırlarım. Enayi olduğumu yazmak istedim, bunlar benim satırlarım ve yorumunuzu gördüm.

Tüm mesajları görüntülemek için günlüklere bakmanız gerekir (farenin sağ tuşu, "Aç"). TEŞEKKÜR EDERİM!!

 

utf8'de dize olarak kodlama yapan bir karakter kodu var (örnek: "041e")

10. sistemde bu kodun eşdeğeri nasıl alınır ve ardından bir sembole nasıl dönüştürülür (kod 041e = Rusça O harfi)

İşte genel olarak bir kapetler ama hiçbir şekilde çözemiyorum :)

 
Günaydın! Sabahları ne yaptığımı tam olarak anlamıyorum. Lütfen söyle bana, bu ilk iki değişken, onların nesi var?
 
Dimka-novitsek :
Günaydın! Sabahları ne yaptığımı tam olarak anlamıyorum. Lütfen söyle bana, bu ilk iki değişken, onların nesi var?

İlk dize değişkenini bir işlev olarak tanımlarsınız. Onu boş yapın (=NULL veya =""). Ardından OnInit'te =_Symbol yapabilirsiniz.

İkinci veya 5 puttan sonra; veya ikinci int'yi kaldırın.

 
TEŞEKKÜR EDERİM!!