Hatalar, hatalar, sorular - sayfa 255

 
"Profiller" kullanmayı deneyin - tablolara/sayfalara benzer işlevler sağlarlar
 
Renat :
"Profiller" kullanmayı deneyin - tablolara/sayfalara benzer işlevler sağlarlar

Teşekkürler. Doğru, tek önemsememek, panele profil yönetimi düğmesini koymamak üzücü, daha dikkat çekici olurdu.
 

Derlemeden sonra:

ağaç optimizasyon hatası 1 1

Değişikliklerin yapıldığı koddan daha büyük bir kod bloğunu kaldırmak bile durumu düzeltmedi.

Optimizasyon devre dışı bırakılabilir mi? Ve bu optimizasyon ağacı hangi yüksekliğe kadar "büyüme" olabilir?

Nasıl önlenir?

 

Üç soru ortaya çıktı:

1) Kişinin yukarıda yazdığı optimizasyon nedir ve hesaplamaların hızını ve programın hızını (nesnelerin oluşturulması ve başlatılması) etkiler mi? Örneğin BASIC 6'da "hızlı kod" derleme seçeneğini etkinleştirmek mümkündü. MKL5'te bu mümkün mü?

2) Sevgili Renat, hesaplamaların artık hızlı bir şekilde yapıldığını ve dll'ye gerek olmadığını söyledi. Birisi hızı C++ dll ile karşılaştırdı - fark nedir? Soru boş değil çünkü. Tasarladığım TS'nin ilk bloğu birkaç saat sayılıyor , ancak başlangıçta 2 mumun görünümü arasında gerçek zamanlı olarak saymak için zamanım olsun istedim. Hesapları dll'ye taşımaya değer mi?

3) Programı nasıl hızlandırabilirim?

Cevap veren herkese minnettar olacağım. Mutlu Yıllar ve mutlu noeller!

 
// входные параметры индикатора
input bool             inp_FLine        = true;
input int              inp_FLine_width  = 1 ;
input ENUM_LINE_STYLE inp_FLine_style  = STYLE_SOLID ;
input color            inp_FLine_col    = DeepPink ;  

// клоны входных параметров
bool               FLine;
int                FLine_width; 
ENUM_LINE_STYLE    FLine_style;
color              FLine_col;

int OnInit ()
{
// инициализация клонов входными параметрами
PLine           = inp_PLine;
FLine_width     = inp_FLine_width;
PLine_style     = inp_PLine_style;
PLine_col       = inp_PLine_col; 
}

int OnCalculate ()
{

if (PLine)
{
FLine_width     = Func(FLine_width);
PLine_style     = Func(PLine_style);
PLine_col       = Func(PLine_col); 
}

// применение новых значений
SetParam(FLine_width,PLine_style,PLine_col);
}


// Такой код с большим кол-вом параметров может привести к
// 
// tree optimization error  ?


Çok sayıda parametreye sahip bu tür kod,

ağaç optimizasyon hatası?

Göstergenin giriş parametrelerinin değerlerini değiştirmenin imkansızlığı nedeniyle grafik nesnelerin özelliklerini yönetmek için bu yöntemi kullandım.


not

Neredeyse tüm kodun bölümlerini yorumladım. Ve sadece birkaç satır kaldığında derleme geçti.

Sonra TÜM yorumları kaldırdım ve her şey çalışmaya devam etti.

Ve o neydi?

 
zloymudvin :
Teşekkürler. Doğru, tek önemsememek, panele profil yönetimi düğmesini koymamak üzücü, daha dikkat çekici olurdu.

Durum satırındaki profil değiştirme komutuna bakın:


 

Bir buçuk yıl önce, MT5'te bu tür hataları çok sık gözlemledim, fark etmemek imkansız olduğu için hiçbir şey söylemedim. Düzeltilmiş gibi görünüyor.

Bu arada, MT4'te bu tür hataları çok sık gördüm.

Şimdi yine aynı hatayı görüyorum. Yine hikaye hatalarla yükleniyor. Bu özel hata durumunda sembolün geçmişini silmek için bir düğme eklemek gerçekten imkansız mı, çünkü tüm rahatsızlığın ana nedeni bu.

Çok yaygın bir hata ayrı bir düğmeyi hak ediyor.


 
vicondi :

Derlemeden sonra:

ağaç optimizasyon hatası 1 1

Değişikliklerin yapıldığı koddan daha büyük bir kod bloğunu kaldırmak bile durumu düzeltmedi.

Optimizasyon devre dışı bırakılabilir mi? Ve bu optimizasyon ağacı hangi yüksekliğe kadar "büyüme" olabilir?

Nasıl önlenir?


Servis masasına bir istek oluşturun ve kaynak kodunu sağlayın, terminal yapısını ve bit derinliğini söyleyin.

Büyük olasılıkla bizim tarafımızda bir hata, ancak çoğaltma ve düzeltme için kaynağa ihtiyacımız var.

 

Tünaydın! acemi plz yardım

// gecikmeleri kaldır


geçersiz deleteAllOrder()
{
for(int i = 0; i < OrdersTotal();i++)
{
order_ticket = OrderGetTicket(i);
HistorySelect(0,TimeCurrent());

MqlTradeResult sonucu;
MqlTradeRequest isteği;

request.order = order_ticket;
request.action = TRADE_ACTION_REMOVE ;
OrderSend(istek,sonuç);

tüm mevduatları değil, yalnızca seçilen enstrüman için silecek şekilde kodun nasıl düzeltileceği. Hemen yapamayacağım bir şey (

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
dimmi2000 :

Tünaydın! acemi plz'ye yardım et

// gecikmeleri kaldır


 void deleteAllOrder()
{
   for ( int i = 0 ; i < OrdersTotal ();i++)
   {
      order_ticket = OrderGetTicket (i);
       HistorySelect ( 0 , TimeCurrent ());             //зачем?
      
       MqlTradeResult result;
       MqlTradeRequest request;
      
      request.order = order_ticket;
      request.action = TRADE_ACTION_REMOVE ;
       OrderSend (request,result);

tüm mevduatları değil, yalnızca seçilen enstrüman için silecek şekilde kodun nasıl düzeltileceği. Hemen yapamayacağım bir şey (

OrderGetString() işlevinin açıklamasına ve ENUM_ORDER_PROPERTY_STRING parametresine bakın
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5