Hatalar, hatalar, sorular - sayfa 1153

 
joo :
Forum gönderilerinde video oynatılmıyor. videonun yerine boş bir alandır. birçok tarayıcı denedi. cihaz Lenovo K900'dür.
YouTube'da video iyi oynuyor. ve diğer sitelerde YouTube videosu oynatılıyor ....
Hadi kontrol edelim.
 
Renat :
Ve Windows 8.1'de kurulu programı nasıl başlatırsınız? üzerinden / taşınabilir?
Numara. Normal olarak / taşınabilir olmadan başlıyorum. Sadece MT5'i iki kez yüklediğimden ve kaldırdığımdan emin olmak için değil. Kaldırma işleminden sonra, AppData'daki klasörleri de manuel olarak sildim .
 

Windows 8.1'de normal bir kullanıcının haklarıyla çalışıyorsanız, MT5 terminali girilen hesap numaralarını hatırlamaz. Ayrıca MetaEditor, MQL5 Storage durumunu kaydetmez. Her şey, yalnızca bir yönetici hesabı altında çalışıyorsanız veya metaeditor64.exe ve terminal64.exe dosyalarının özelliklerinde "Bu programı yönetici olarak çalıştır" seçeneğini ayarladıysanız ele alınabilir.

Ancak bu durumda, normal bir kullanıcı hesabı altında çalışırken yönetici şifresini girmeniz gerekir - güvenlik sorunlarını göz önünde bulundurursak bu doğru mu?

PS terminali en sonuncusu - ancak sorun yeni değil.


 

Tünaydın.

Oldukça kaynak yoğun bir göstergem var (7+ diziden hesaplandı), terminalde normalde yalnızca "her seferinde" yükleniyor, nedenini bilmiyorum. İçinde hata yok, MT5 terminalinin kendisinde olan bir şey...

Test cihazında test etmek istiyorum ancak test cihazında sürekli hata veriyor: Ekran görüntüsü ekledim.

Söyle bana , test cihazı başlamadan önce bir hatayı işlemek ve belirirse test cihazındaki göstergeyi yeniden başlatmaya zorlamak mümkün mü?

 
M1k3 :

Tünaydın.

Oldukça kaynak yoğun bir göstergem var (7+ diziden hesaplanıyor), terminalde normalde yalnızca "her seferinde" yükleniyor, nedenini bilmiyorum. İçinde hata yok, MT5 terminalinin kendisinde olan bir şey...

Test cihazında test etmek istiyorum ancak test cihazında sürekli hata veriyor: Ekran görüntüsü ekledim.

Söyle bana , test cihazı başlamadan önce bir hatayı işlemek ve belirirse test cihazındaki göstergeyi yeniden başlatmaya zorlamak mümkün mü?

.

Hata, terminalde değil, kodunuzdadır. Hatanın nerede aranacağına dair bir ipucu bile var: satır 302, konum 49. Bu hata, aralık dışında bir dizidir. Yani örneğin bir boyut [4] dizisi var ve [5] değerini almaya çalışıyorsunuz.
 
barabashkakvn :
Hata, terminalde değil, kodunuzdadır. Hatanın nerede aranacağına dair bir ipucu bile var: satır 302, konum 49. Bu hata, aralık dışında bir dizidir. Yani örneğin bir boyut [4] dizisi var ve [5] değerini almaya çalışıyorsunuz.

Düzeltemiyorum, dizi tırnak (%100) veya gösterge değerleriyle dolu. Terminalde, belirli bir zamanda, tırnakların veya göstergelerin değeri X değeri NULL verir ve başka bir anda normal bir değer verir (0. çubukta değil). Bunun neden olduğunu bilmiyorum.

NULL değeri, test cihazında her zaman bulunur. Bir alıntı veya gösterge değerini çarpmaya çalıştığımda hata oluşuyor, ancak bu NULL.

 
M1k3 :

Düzeltemiyorum, dizi tırnak (%100) veya gösterge değerleriyle dolu. Terminalde, belirli bir zamanda, X tırnaklarının değeri NULL verir ve başka bir anda normal bir değer verir (0. çubukta değil). Bunun neden olduğunu bilmiyorum.

NULL değeri, test cihazında her zaman bulunur. Bir alıntı veya gösterge değerini çarpmaya çalıştığımda hata oluşuyor, ancak bu NULL.

Kod hata ayıklamasını kullanın veya kodun şüpheli bölümlerine Print() deyimleri ekleyin. Bu şekilde hatanın nerede olduğunu anlayacaksınız.
 
barabashkakvn :

Sağladığım kod, göstergeden ve OnInit() işlevinden gelen koddur. Buna göre OnInit(), uçbirim başlatıldığı anda işlenir - ve bu kod, onay değerini doğru şekilde görüntüler. Bu OnInit() , init() değil - sizin gibi. Hata tekrar ederse, terminalin kodunu ve sürümünü gönderin.

Hata, göstergeden OnInit() içindeki piyasa bilgilerini (MarketInfo...) almaya çalışıyor olmanızdır. Göstergenin alım satım işlevleri yoktur ve buna bağlı olarak başlatma sırasında hesap ve piyasa bilgilerinin güncellenmesini beklemez.

Pazar ortamı hakkında veri almak için , gösterge yerine Expert Advisor'ın OnInit()'ini kullanın.

Göstergede piyasa bilgilerini kullanmanız gerekiyorsa, bayrağı (bool) girmeli ve ilk başlatma durumunda OnCalculate() işlevinde veya OnInit('te hesap bilgilerinin (Hesap...) doğruluğunu kontrol etmelisiniz. ) zaman çerçevesi veya gösterge ayarlarının değiştirilmesi durumunda.

İnsanları yanıltmayın. Göstergenin init() veya OnInit() kullanılıp kullanılmadığına bakılmaksızın, uçbirim bu işleyicinin oturum açma zaten yapıldığında ve onay maliyeti bilindiğinde çağrılacağını garanti etmez. Bu yüzden OnInit'te sıfır almak da kolaydır. Göstergelerde piyasa bilgilerinin kullanımına ilişkin herhangi bir yasak da bulunmamaktadır. Ancak bu durumda, başlatmayı gerçekten göstergenin hesaplama bölümüne taşımanız ve ilk tiklerde yürütmeniz gerekir.
 
marketeer :
İnsanları yanıltmayın. Göstergenin init() veya OnInit() kullanılıp kullanılmadığına bakılmaksızın, uçbirim bu işleyicinin oturum açma zaten yapıldığında ve onay maliyeti bilindiğinde çağrılacağını garanti etmez. Bu yüzden OnInit'te sıfır almak da kolaydır. Göstergelerde piyasa bilgilerinin kullanımına ilişkin herhangi bir yasak da bulunmamaktadır. Ancak bu durumda, başlatmayı gerçekten göstergenin hesaplama bölümüne taşımanız ve ilk tiklerde yürütmeniz gerekir.

Göstergede ticaret işlevi yoktur. EA'nın ticaret işlevleri vardır. Bu nedenle Expert Advisor'da piyasa ortamına ve/veya hesap bilgilerine erişirken OnInit()'te her şey doğru gidiyor.

Sözlerimi doğrulamak için, OnInit()'in ticaret ortamına ve hesap bilgilerine eriştiği basit bir Uzman Danışman burada:

 //+------------------------------------------------------------------+
//|                                                  test_expert.mq4 |
//|                              Copyright © 2014, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2014, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   //--- выведем всю информацию, доступную из функции AccountInfoDouble()
       printf ( "ACCOUNT_BALANCE =  %G" , AccountInfoDouble ( ACCOUNT_BALANCE ));
       printf ( "ACCOUNT_CREDIT =  %G" , AccountInfoDouble ( ACCOUNT_CREDIT ));
       printf ( "ACCOUNT_PROFIT =  %G" , AccountInfoDouble ( ACCOUNT_PROFIT ));
       printf ( "ACCOUNT_EQUITY =  %G" , AccountInfoDouble ( ACCOUNT_EQUITY ));
       printf ( "ACCOUNT_MARGIN =  %G" , AccountInfoDouble ( ACCOUNT_MARGIN ));
       printf ( "ACCOUNT_FREEMARGIN =  %G" , AccountInfoDouble ( ACCOUNT_FREEMARGIN ));
       printf ( "ACCOUNT_MARGIN_LEVEL =  %G" , AccountInfoDouble ( ACCOUNT_MARGIN_LEVEL ));
       printf ( "ACCOUNT_MARGIN_SO_CALL = %G" , AccountInfoDouble ( ACCOUNT_MARGIN_SO_CALL ));
       printf ( "ACCOUNT_MARGIN_SO_SO = %G" , AccountInfoDouble ( ACCOUNT_MARGIN_SO_SO ));
       //--- MarketInfo
       Print ( "Symbol=" , Symbol ());
       Print ( "Минимальная дневная цена=" ,MarketInfo( Symbol (),MODE_LOW));
       Print ( "Максимальная дневная цена=" ,MarketInfo( Symbol (),MODE_HIGH));
       Print ( "Время поступления последней котировки=" ,(MarketInfo( Symbol (),MODE_TIME)));
       Print ( "Последняя поступившая цена предложения=" ,MarketInfo( Symbol (),MODE_BID));
       Print ( "Последняя поступившая цена продажи=" ,MarketInfo( Symbol (),MODE_ASK));
       Print ( "Размер пункта в валюте котировки=" ,MarketInfo( Symbol (),MODE_POINT));
       Print ( "Количество цифр после запятой в цене инструмента=" ,MarketInfo( Symbol (),MODE_DIGITS));
       Print ( "Спрэд в пунктах=" ,MarketInfo( Symbol (),MODE_SPREAD));
       Print ( "Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах=" ,MarketInfo( Symbol (),MODE_STOPLEVEL));
       Print ( "Размер контракта в базовой валюте инструмента=" ,MarketInfo( Symbol (),MODE_LOTSIZE));
       Print ( "Размер минимального изменения цены инструмента в валюте депозита=" ,MarketInfo( Symbol (),MODE_TICKVALUE));
       Print ( "Минимальный шаг изменения цены инструмента в пунктах=" ,MarketInfo( Symbol (),MODE_TICKSIZE));
       Print ( "Размер свопа для ордеров на покупку=" ,MarketInfo( Symbol (),MODE_SWAPLONG));
       Print ( "Размер свопа для ордеров на продажу=" ,MarketInfo( Symbol (),MODE_SWAPSHORT));
       Print ( "Календарная дата начала торгов (фьючерсы)=" ,MarketInfo( Symbol (),MODE_STARTING));
       Print ( "Календарная дата окончания торгов (фьючерсы)=" ,MarketInfo( Symbol (),MODE_EXPIRATION));
       Print ( "Разрешение торгов по указанному инструменту=" ,MarketInfo( Symbol (),MODE_TRADEALLOWED));
       Print ( "Минимальный размер лота=" ,MarketInfo( Symbol (),MODE_MINLOT));
       Print ( "Шаг изменения размера лота=" ,MarketInfo( Symbol (),MODE_LOTSTEP));
       Print ( "Максимальный размер лота=" ,MarketInfo( Symbol (),MODE_MAXLOT));
       Print ( "Метод вычисления свопов=" ,MarketInfo( Symbol (),MODE_SWAPTYPE));
       Print ( "Способ расчета прибыли=" ,MarketInfo( Symbol (),MODE_PROFITCALCMODE));
       Print ( "Способ расчета залоговых средств=" ,MarketInfo( Symbol (),MODE_MARGINCALCMODE));
       Print ( "Начальные залоговые требования для 1 лота=" ,MarketInfo( Symbol (),MODE_MARGININIT));
       Print ( "Размер залоговых средств для поддержки открытых ордеров в расчете на 1 лот=" ,MarketInfo( Symbol (),MODE_MARGINMAINTENANCE));
       Print ( "Маржа, взимаемая с перекрытых ордеров в расчете на 1 лот=" ,MarketInfo( Symbol (),MODE_MARGINHEDGED));
       Print ( "Размер свободных средств, необходимых для открытия 1 лота на покупку=" ,MarketInfo( Symbol (),MODE_MARGINREQUIRED));
       Print ( "Уровень заморозки ордеров в пунктах=" ,MarketInfo( Symbol (),MODE_FREEZELEVEL)); 
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   
  }
//+------------------------------------------------------------------+
Dosyalar:
 
barabashkakvn :

Göstergede ticaret işlevi yoktur. EA'nın ticaret işlevleri vardır. Bu nedenle Expert Advisor'da piyasa ortamına ve/veya hesap bilgilerine erişirken OnInit()'te her şey doğru gidiyor.

Sözlerimi doğrulamak için, OnInit()'in ticaret ortamına ve hesap bilgilerine eriştiği basit bir Uzman Danışman burada:

Soru aslında göstergeyle ilgiliydi. Ve göstergenin OnInit'i hakkında cevap verdiniz. Uzman Danışman başka bir konu, orada sorun yok ama Uzman Danışman bir göstergenin yerini tutamaz.