MT3'e aşina değilim ama MT3 üzerinde çalışan kodun MT4 üzerinde de çalıştığını varsayıyorum. . . MT4 --> MT5 ile ilgili sorun budur ve durumun farklı olmasının nedeni budur.
MT4 kullanıcılarının çoğu kod yazamaz, MT4'teki favori Göstergeleri MT5'te yoksa MT5'i kullanmazlar.
Bildiğim kadarıyla MT3 kodu MT4'te çalışmıyor, dil çok farklı. MT4/MT5 hakkındaki bu tartışma sonsuzdur, MT4'ün hayatta kalmasına yol açan birçok faktör vardır, MT5'in MT4'ün tamamen yerini alması amaçlandığından bile emin değilim.
Her neyse, yeni sürümle ilgili olarak Metaquotes, ex4 düzeyinde geriye dönük uyumlu olacağını, ancak gerçekten mq4 düzeyinde olmayacağını söyledi.
Bildiğim kadarıyla MT3 kodu MT4'te çalışmıyor, dil çok farklı. MT4/MT5 hakkındaki bu tartışma sonsuzdur, MT4'ün hayatta kalmasına yol açan birçok faktör vardır, MT5'in MT4'ün tamamen yerini alması amaçlandığından bile emin değilim.
Her neyse, yeni sürümle ilgili olarak Metaquotes, ex4 düzeyinde geriye dönük uyumlu olacağını, ancak gerçekten mq4 düzeyinde olmayacağını söyledi.
Mevcut .ex4 Göstergeleri, Komut Dosyaları ve EA'larla uyumluluk yalnızca dille ilgili değildir, aynı zamanda Terminal ve çalışma biçimindeki değişikliklerle de ilgilidir. Örneğin, Strateji Test Cihazında yapılan değişiklikler, öncelikli olarak Strateji Test Cihazında kullanılmak üzere tasarlanan EA'ları bozabilirken, aynı EA canlı bir grafikte sorunsuz çalışır ve artık birincil işlevini yerine getirmez. . .
Bildiğim kadarıyla MT3 kodu MT4'te çalışmıyor, dil çok farklı. MT4/MT5 hakkındaki bu tartışma sonsuzdur, MT4'ün hayatta kalmasına yol açan birçok faktör vardır, MT5'in MT4'ün tamamen yerini alması amaçlandığından bile emin değilim.
Her neyse, yeni sürümle ilgili olarak Metaquotes, ex4 düzeyinde geriye dönük uyumlu olacağını, ancak gerçekten mq4 düzeyinde olmayacağını söyledi.
Bana göre, mq4 düzeyinde geriye doğru uyumlu olması gerekiyor gibi görünüyor, dahil edilen özel göstergeler , yeni derleyicide derledikleri ve yeni terminalde çalıştırdıkları init() işlevinin adını değiştiren orijinal mql4 sürümleridir, bu, eğer istiyorsak, IndicatorCounted() kullanarak göstergeleri kodlayabileceğimiz anlamına gelmelidir ...
init() artık int OnInit(void) olarak adlandırılıyor ve geri dönüyor(INIT_SUCCEEDED);
Bana göre, mq4 düzeyinde geriye doğru uyumlu olması gerekiyordu gibi görünüyor, dahil edilen özel göstergeler, yeni derleyicide derledikleri ve yeni terminalde çalıştırdıkları init() işlevinin adını değiştiren orijinal mql4 sürümleridir, bu, eğer istiyorsak, IndicatorCounted() kullanarak göstergeleri kodlayabileceğimiz anlamına gelmelidir ...
init() artık int OnInit(void) olarak adlandırılıyor ve geri dönüyor(INIT_SUCCEEDED);
Üzgünüz ama mq4 seviyesinde geriye dönük uyumlu olmayacak, ilk beta duyurusuna bakın.
Eski MQL4 sürümünden farklılıklar:
VE/VEYA mantıksal işlemlerin önceliği değiştirildi. Artık her şey standart C/C++ ile benzer
Mantıksal ifadelerin kısaltılmış değerlendirmesi tanıtıldı. Şimdi, mantıksal bir ifade sonuna ulaşmadan değerlendirildiğinde, C/C++'da olduğu gibi, kalan sonraki ifadeler değerlendirilmez.
Anahtar operatöründe artık sadece tamsayı değerleri kullanılmaktadır. Gerçek değerler daha önce kullanılabilirdi
Değişken isimlerinde artık nokta sembolü kullanılamaz. Ayrıca, '@', '$' ve '?' değişken isimlerinde semboller kullanılamaz
Başlatma işlevi için sıkılaştırılmış gereksinimler. Parametreler daha önce başlatma fonksiyonunda ayarlanmış olabilir. Artık tüm init, start, deinit, OnInit, OnStart, OnTick, OnTimer ve diğer giriş noktaları imzalarıyla tam olarak eşleşmelidir.
Anahtar kelimelerin genişlemesi nedeniyle kısa, uzun, kayan nokta, const, sanal, giriş, silme, yeni, do, char gibi adlar artık kullanılamaz.
Artık, içe aktarılan dll işlevleri, MQL5'te olduğu gibi, MQL dize dizilerini parametre olarak kabul edemez.
Mevcut kaynak dosyalarda aynı adlar altında bildirilen basit değişkenlerle çakışabilecek önceden tanımlanmış _Period, _Symbol, _LastError, _CriticalError, _StopFlag, _Point, _Digits, _UninitReason, _RandomSeed değişken adları tanıtıldı
tarih saat türü, MQL5'teki gibi 8 baytlık bir hale geldi.
Farklılıklar kritik değildir ve kodda kolayca düzeltilebilir. Karşılığında, birden fazla MQL5 özelliğine, geliştirilmiş yürütme hızına ve çok daha sıkı kalite kontrolüne erişiyoruz.
Ağır değişiklikler değil, ancak %100 geriye dönük uyumlu (mq4) olmadığı anlamına gelir.
Yeni sürüm yayınlandığında, yeni mql4 dokümantasyonu mql5 kodlamasına dayandığından, yeni başlayanlar için forumda çok fazla kafa karışıklığına neden olacağını düşünüyorum. Bu, bu forumda ve kod tabanında açıklananların çoğunun mql4 dokümanları tarafından çelişeceği anlamına gelir.
Yeni mql4 dokümanlarından bir gösterge arabelleği ayarlama: (Bunun aslında içinde hataları var ve derlenmeyecek)
#property copyright "2009, MetaQuotes Software Corp."#property link "https://www.mql5.com"#property version "1.00"#property indicator_separate_window#property indicator_buffers 1#property indicator_plots 1//---- plot MA#property indicator_label1 "MA"#property indicator_type1 DRAW_LINE#property indicator_color1 clrRed#property indicator_style1 STYLE_SOLID#property indicator_width1 1//--- input parametersinputbool AsSeries= true ;
inputint period= 15 ;
inputENUM_MA_METHOD smootMode= MODE_EMA ;
inputENUM_APPLIED_PRICE price= PRICE_CLOSE ;
inputint shift= 0 ;
//--- indicator buffersdouble MABuffer[];
int ma_handle;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit ()
{
//--- indicator buffers mappingif (AsSeries) ArraySetAsSeries (MABuffer, true );
Print ( "Indicator buffer is timeseries = " , ArrayGetAsSeries (MABuffer));
SetIndexBuffer ( 0 ,MABuffer, INDICATOR_DATA );
Print ( "Indicator buffer after SetIndexBuffer() is timeseries = " ,
ArrayGetAsSeries (MABuffer));
//--- change the oredr of accessing elements of the indicator bufferArraySetAsSeries (MABuffer,AsSeries);
IndicatorSetString ( INDICATOR_SHORTNAME , "MA(" +period+ ")" +AsSeries);
//---
ma_handle= iMA ( Symbol (), 0 ,period,shift,smootMode,price);
return (INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate ( constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
//--- Copy the values of the moving average in the buffer MABufferint copied= CopyBuffer (ma_handle, 0 , 0 ,rates_total,MABuffer);
Print ( "MABuffer[0] = " ,MABuffer[ 0 ]); // Depending on the value AsSeries// Will receive a very old value// Or for the current unfinished bar//--- return value of prev_calculated for next callreturn (rates_total);
}
//+------------------------------------------------------------------+
Yeni sürüm yayınlandığında, yeni mql4 dokümantasyonu mql5 kodlamasına dayandığından, yeni başlayanlar için forumda çok fazla kafa karışıklığına neden olacağını düşünüyorum. Bu, bu forumda ve kod tabanında açıklananların çoğunun mql4 dokümanları tarafından çelişeceği anlamına gelir.
Yeni mql4 dokümanlarından bir gösterge arabelleği ayarlama: (Bunun aslında içinde hataları var ve derlenmeyecek)
Evet haklısın zor bir geçiş olacak. Ancak, yeni başlayanlar için değil, henüz mql5'i bilmeyen deneyimli mql4 kodlayıcıları için zor olacağını düşünüyorum. Genel olarak, yeni başlayanlar belgeleri okumaz
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
MT3'e aşina değilim ama MT3 üzerinde çalışan kodun MT4 üzerinde de çalıştığını varsayıyorum. . . MT4 --> MT5 ile ilgili sorun budur ve durumun farklı olmasının nedeni budur.
MT4 kullanıcılarının çoğu kod yazamaz, MT4'teki favori Göstergeleri MT5'te yoksa MT5'i kullanmazlar.
Bildiğim kadarıyla MT3 kodu MT4'te çalışmıyor, dil çok farklı. MT4/MT5 hakkındaki bu tartışma sonsuzdur, MT4'ün hayatta kalmasına yol açan birçok faktör vardır, MT5'in MT4'ün tamamen yerini alması amaçlandığından bile emin değilim.
Her neyse, yeni sürümle ilgili olarak Metaquotes, ex4 düzeyinde geriye dönük uyumlu olacağını, ancak gerçekten mq4 düzeyinde olmayacağını söyledi.
Yeni meta düzenleyici yardımına hızlıca göz attım, yeni sürüm mql4 eski sürümden düşündüğümden çok daha farklı görünüyor.
Bildiğim kadarıyla MT3 kodu MT4'te çalışmıyor, dil çok farklı. MT4/MT5 hakkındaki bu tartışma sonsuzdur, MT4'ün hayatta kalmasına yol açan birçok faktör vardır, MT5'in MT4'ün tamamen yerini alması amaçlandığından bile emin değilim.
Her neyse, yeni sürümle ilgili olarak Metaquotes, ex4 düzeyinde geriye dönük uyumlu olacağını, ancak gerçekten mq4 düzeyinde olmayacağını söyledi.
Bildiğim kadarıyla MT3 kodu MT4'te çalışmıyor, dil çok farklı. MT4/MT5 hakkındaki bu tartışma sonsuzdur, MT4'ün hayatta kalmasına yol açan birçok faktör vardır, MT5'in MT4'ün tamamen yerini alması amaçlandığından bile emin değilim.
Her neyse, yeni sürümle ilgili olarak Metaquotes, ex4 düzeyinde geriye dönük uyumlu olacağını, ancak gerçekten mq4 düzeyinde olmayacağını söyledi.
Bana göre, mq4 düzeyinde geriye doğru uyumlu olması gerekiyor gibi görünüyor, dahil edilen özel göstergeler , yeni derleyicide derledikleri ve yeni terminalde çalıştırdıkları init() işlevinin adını değiştiren orijinal mql4 sürümleridir, bu, eğer istiyorsak, IndicatorCounted() kullanarak göstergeleri kodlayabileceğimiz anlamına gelmelidir ...
init() artık int OnInit(void) olarak adlandırılıyor ve geri dönüyor(INIT_SUCCEEDED);
Bana göre, mq4 düzeyinde geriye doğru uyumlu olması gerekiyordu gibi görünüyor, dahil edilen özel göstergeler, yeni derleyicide derledikleri ve yeni terminalde çalıştırdıkları init() işlevinin adını değiştiren orijinal mql4 sürümleridir, bu, eğer istiyorsak, IndicatorCounted() kullanarak göstergeleri kodlayabileceğimiz anlamına gelmelidir ...
init() artık int OnInit(void) olarak adlandırılıyor ve geri dönüyor(INIT_SUCCEEDED);
Üzgünüz ama mq4 seviyesinde geriye dönük uyumlu olmayacak, ilk beta duyurusuna bakın.
Eski MQL4 sürümünden farklılıklar:
VE/VEYA mantıksal işlemlerin önceliği değiştirildi. Artık her şey standart C/C++ ile benzer
Mantıksal ifadelerin kısaltılmış değerlendirmesi tanıtıldı. Şimdi, mantıksal bir ifade sonuna ulaşmadan değerlendirildiğinde, C/C++'da olduğu gibi, kalan sonraki ifadeler değerlendirilmez.
Anahtar operatöründe artık sadece tamsayı değerleri kullanılmaktadır. Gerçek değerler daha önce kullanılabilirdi
Değişken isimlerinde artık nokta sembolü kullanılamaz. Ayrıca, '@', '$' ve '?' değişken isimlerinde semboller kullanılamaz
Başlatma işlevi için sıkılaştırılmış gereksinimler. Parametreler daha önce başlatma fonksiyonunda ayarlanmış olabilir. Artık tüm init, start, deinit, OnInit, OnStart, OnTick, OnTimer ve diğer giriş noktaları imzalarıyla tam olarak eşleşmelidir.
Anahtar kelimelerin genişlemesi nedeniyle kısa, uzun, kayan nokta, const, sanal, giriş, silme, yeni, do, char gibi adlar artık kullanılamaz.
Artık, içe aktarılan dll işlevleri, MQL5'te olduğu gibi, MQL dize dizilerini parametre olarak kabul edemez.
Farklılıklar kritik değildir ve kodda kolayca düzeltilebilir. Karşılığında, birden fazla MQL5 özelliğine, geliştirilmiş yürütme hızına ve çok daha sıkı kalite kontrolüne erişiyoruz.
...
init() artık int OnInit(void) olarak adlandırılıyor ve geri dönüyor(INIT_SUCCEEDED);
Meta düzenleyicideki yeni özellikleri beğendim
Yeni sürüm yayınlandığında, yeni mql4 dokümantasyonu mql5 kodlamasına dayandığından, yeni başlayanlar için forumda çok fazla kafa karışıklığına neden olacağını düşünüyorum. Bu, bu forumda ve kod tabanında açıklananların çoğunun mql4 dokümanları tarafından çelişeceği anlamına gelir.
Yeni mql4 dokümanlarından bir gösterge arabelleği ayarlama: (Bunun aslında içinde hataları var ve derlenmeyecek)
Yeni sürüm yayınlandığında, yeni mql4 dokümantasyonu mql5 kodlamasına dayandığından, yeni başlayanlar için forumda çok fazla kafa karışıklığına neden olacağını düşünüyorum. Bu, bu forumda ve kod tabanında açıklananların çoğunun mql4 dokümanları tarafından çelişeceği anlamına gelir.
Yeni mql4 dokümanlarından bir gösterge arabelleği ayarlama: (Bunun aslında içinde hataları var ve derlenmeyecek)
MQL5 angevoyageur'da zaten kod yazdınız mı?