Hatalar, hatalar, sorular - sayfa 1973

 
Stanislav Korotky :
Lütfen bana belirli bir çubuk için hacim hesaplama algoritmasını söyleyin (belki bir yerde daha önce açıklanmıştır?). Örneğin, belirli bir çubuk için tüm onayları istemek için CopyTicksRange kullanırsak, hesaplamalar sonucunda Veri Penceresinde görüntülenen aynı hacmi (hem gerçek hem de işaret) almamız gerekir. Hisse senedi enstrümanları için büyüklük sırasına göre her iki ciltte de tutarsızlıklar var (özellikler için MQ-Demo'da AFLT'yi alalım). Forex için tik hacimleri aynıdır, gerçek hacimlerden söz edilmez.
Hacimleri toplarken bayrakları kontrol edin - TICK_FLAG. Aksi takdirde, aynı hacmi birkaç kez sayarsınız.
 
Dmitriy Skub :
Hacimleri toplarken bayrakları kontrol edin - TICK_FLAG. Aksi takdirde, aynı hacmi birkaç kez sayarsınız.

Elbette bayrakları izliyorum. Bunu soruyordum - sadece ayrıntılara ihtiyacım vardı. Zaten cevaplandı. _TRADE kenelerini sorgulamak daha kolaydır. İşler.

 
Stanislav Korotky :

Elbette bayrakları izliyorum. Bunu soruyordum - sadece ayrıntılara ihtiyacım vardı. Zaten cevaplandı. _TRADE kenelerini sorgulamak daha kolaydır. İşler.

ENUM_SYMBOL_CALC_MODE'a bağlı olarak bayrağı da uygulayabilirsiniz.

 
Alexey Viktorov :

ENUM_SYMBOL_CALC_MODE'a bağlı olarak bayrağı da uygulayabilirsiniz.

Tabii ki bunu yapıyorum.

 
Bu konuyla ilgili olmayan yorumlar " MQL4 MT4 MetaTrader 4 Yeni Başlayanlardan Sorular " bölümüne taşındı.
 
dahili hata #27
 #import "Test.ex5"
         int f();
#import
static int i = Test::f();
 
Николай Никитюк :

TrendTenkan yönteminden elde edilen hesaplamaların sonuçlarını kullanmak için "LongCondition" ve "ShortCondition" işlevlerine ihtiyacım varsa ve yine de yapamıyorum. Bu, LongCondition'ın TrendTenkan'ı araması gerektiği anlamına mı geliyor?

Yalnızca bariz hataları düzeltebilirim:

 for (i=idx+ 1 ;i<idx+ 21 ;i++)
     { if (DiffKijun(i)> 0.0 ) {value_t=TYPE_TREND_UP; break ; return (value_t);}
//здесь явно что-то не так
//return после break не имеет смысла

Nereden çağrılmalı - bilmiyorum

 

dahili hata #112

 class A;
struct B {
         void f() { a.g(); }
        A *a;
};
void OnStart ()
{
        B b;
        b.f();
}
 

1653 derlemesinde, çalışma zamanı hatası kaybolmadı, yalnızca kodun başka bir bölümüne taşındı:

'Test2.ex5' içinde 'f1' bulunamıyor

 //Test.mqh
class B {
         virtual void f() {}
};
class C {
        virtual void g( B& ) {}
};
class A : C {};
#import "Test2.ex5"
        A *f1();
        B *f2();
#import
//Test.mq5
#include "Test.mqh"
void OnStart ()
{
        f1();
}
 //Test2.mq5
#property library
#include "Test.mqh"
A *f1() export { return NULL ; }
B *f2() export { return NULL ; }
 

Derlerken hata

 #import "Test.ex5"
         void g();   //g(1)
#import
         void g() {} //g(2)
typedef void (*fn)();
void f( fn )       {}
void f( int , int ) {}
void OnStart ()
{
        f( Test::g ); //нормально
        f(     ::g ); //error: 'f' - no one of the overloads can be applied to the function call
        f(       g ); //error: 'f' - no one of the overloads can be applied to the function call
//а как иначе указать что g - это g(2) ... и причем здесь overloads ???
        fn gg = g;     //нормально
        f( gg );
}