Çaydanlıktan gelen sorular - sayfa 75

 
kirill-demo :
Uzman Danışmanı sihirbazda oluşturdum. Ve mql hakkında fazla bir şey bilmiyorum. Zarf örneğini kullanarak ne yapmam gerektiğini bana açık bir şekilde açıklar mısınız?

CsignalEnvelopes sınıfı böyle bir pazar modeli içermez.

Sonuç: Sınıfı değiştirmeniz (veya kendinizinkini yazmanız) gerekir.

 
MT5'ten MT4'te dll'den işlevleri çağırma arasındaki fark nedir? Dll'yi derliyorum, MT5'te harika çalışıyor, ancak MT4'te hata veriyor:

2011.10.06 23:00:34 Solaris yürütücüsü EURUSDm,M1: 'Solaris.dll' dll'sinden 'InfoOfTrading' işlevini çağıramıyor (hata 127)

Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5
 
joo :
MT5'ten MT4'te dll'denişlevleri çağırma arasındaki fark nedir? Dll'yi derliyorum, MT5'te harika çalışıyor, ancak MT4'te hata veriyor:

2011.10.06 23:00:34 Solaris yürütücüsü EURUSDm,M1: 'Solaris.dll' dll'sinden 'InfoOfTrading' işlevini çağıramıyor (hata 127)

Lütfen fonksiyon prototipinin bir tanımını sağlayın. Büyük olasılıkla MT5 için _stdcall tasarımını kullandınız.

MT5, DLL işlev adlarını bağlamak için daha esnek bir mekanizmaya sahiptir - hem _stdcall (ad süslemesiyle daha gelişmiş) hem de _cdecl (eski klasik yöntem) otomatik olarak destekler. MetaTrader 4 yalnızca _cdecl çağrılarını destekler.

" MQL5 için DLL kitaplığı nasıl yazılır ve 10 dakikada veri alışverişi nasıl yapılır? " makalesini okuyun - DLL işlev çağrıları hakkında ayrıntılı bilgi verir.

 
Renat :

Lütfen fonksiyon prototipinin bir tanımını sağlayın. Büyük olasılıkla MT5 için _stdcall tasarımını kullandınız.

MT5, DLL işlev adlarını bağlamak için daha esnek bir mekanizmaya sahiptir - hem _stdcall (ad süslemesiyle daha gelişmiş) hem de _cdecl (eski klasik yöntem) otomatik olarak destekler. MetaTrader 4 yalnızca _cdecl çağrılarını destekler.

" MQL5 için DLL kitaplığı nasıl yazılır ve 10 dakikada veri alışverişi nasıl yapılır? " makalesini okuyun - DLL işlev çağrıları hakkında ayrıntılı bilgi verir.

Bunu şöyle beyan etmeye çalıştım:

_DLLAPI void _cdecl InfoOfTrading( int &ou_ParamCountALl, int &ou_BarsRequired)

böyle:

_DLLAPI void InfoOfTrading( int &ou_ParamCountALl, int &ou_BarsRequired)

öncekinin yerine:

_DLLAPI void __stdcall InfoOfTrading( int &ou_ParamCountALl, int &ou_BarsRequired)

ama şimdi başka bir hata:

2011.10.07 01:35:05 Solaris yürütücüsü EURUSDm,M1: 'Solaris.dll' dll'sinden 'InfoOfTrading' işlevi çağrısı kritik hatası


makaleyi okudum.


Proje ayarlarında, çağırma yöntemini açıkça belirttim:


Ve MT5'te hala hatasız çalışıyor.

 
tol64 :
Genel olarak, yardımda sinyaller tam olarak ihtiyacınız olduğu gibi tanımlanır. Burada görebilirsiniz. Ve şekilde CCI göstergesinden bile ayarları görebilirsiniz. Yani, büyük olasılıkla, yalnızca Zarflar göstergesinin sinyallerinde değil, bir Uzman Danışman topladınız. Bir de CCİ var.

Evet, üzgünüm. Yanlış resim gönderdi. Ama bu bir şeyleri değiştirmez. İşte danışmandan sadece zarfların üzerindeki bir resim.

Ne yapmalıyım? Nasıl düzeltilir?

 

Bu arada, MT4'ün standart teslimatından bir kaynak örneğinde, __stdcall aracılığıyla yapılan çağrı:

MT4_EXPFUNC double __stdcall GetDoubleValue( const double dpar)
  {
   printf ( "GetDoubleValue takes %.8lf\n" ,dpar);
   return (dpar);
  }

ve iyi çalışıyor.

 
Lütfen biri bana açıklasın!
 
joo :

Bu arada, MT4'ün standart teslimatından bir kaynak örneğinde, __stdcall aracılığıyla bir çağrı:

ve iyi çalışıyor.


MT4 örneğinde:

#define MT4_EXPFUNC __declspec(dllexport)

MT4_EXPFUNC char* __stdcall GetStringValue(char *spar)

и имена экспортируемых функций явно описываются через *.def файл:

LIBRARY ExpertSample

EXPORTS GetIntValue
        GetDoubleValue
        GetStringValue
        GetArrayItemValue
        SetArrayItemValue
        GetRatesItemValue
        SortStringArray
        ProcessStringArray


stdcall desteklenir. Dörtlü için & ile geçen parametreyi tanımlamanın doğru yolunun ne olduğundan emin değil.
Документация по MQL5: Основы языка / Функции / Передача параметров
Документация по MQL5: Основы языка / Функции / Передача параметров
  • www.mql5.com
Основы языка / Функции / Передача параметров - Документация по MQL5
 
Renat :

MT4 örneğinde:

#define MT4_EXPFUNC __declspec(dllexport)

MT4_EXPFUNC char* __stdcall GetStringValue(char *spar)

и имена экспортируемых функций явно описываются через *.def файл:

LIBRARY ExpertSample

EXPORTS GetIntValue
        GetDoubleValue
        GetStringValue
        GetArrayItemValue
        SetArrayItemValue
        GetRatesItemValue
        SortStringArray
        ProcessStringArray


stdcall desteklenir. Dörtlü için & ile geçen parametreyi tanımlamanın doğru yolunun ne olduğundan emin değil.

2 yıl boyunca 4 ile nasıl çalışılacağını tamamen unuttum. :)

1. Referans yoluyla geçirilen bir değişkenin bir dll'ye yazılamadığı ortaya çıktı. Bunu yapmak için bir dizi kullanmanız gerekir.

2. Ve *.def dosyasının kullanılması zorunludur.

Burada aslında, dll 4 ve 5 ile çalışırken bulduğum 2 fark var, belki daha fazlası var.

 
İnsanlar, bu soru zaten bıktıysa özür dilerim, bana parametreler> posta sekmesini nasıl doğru bir şekilde dolduracağımı söyleme? mail.ru'da postam var, işe yarar mı? Sunucunun adresi nedir bilmiyorum..Çalışmıyorsa doğru olanı nereye kayıt ettirebilirim? E-posta bildirimleri göndermek istiyorum..
Neden: