MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 935

 
İyi günler, MT5 için alıntı geçmişini indirmek ve senkronize etmek için normal bir komut dosyası olup olmadığını bilmek istedim, yakın zamana kadar shistoryexport.ex5 kullandım ve her şey yolundaydı, tarayıcı çalıştı, sinyaller verdi, her şey net bir şekilde çalıştı, ancak dün öğle yemeğinden sonra, kesildiği için, tarayıcı geçmişi görmeyi bıraktı ve buna göre, stratejiye ve sinyal vermeye göre giriş noktaları arıyor, tarayıcıda olduğunu düşündüm, ancak birkaç versiyonumuz var ve vermeyi bıraktık. herkese sinyaller, hem benim için hem de bir arkadaşım için, terminali temizledim, işe yaramaz, tüm bilgilerle sildi, yeniden yükledim ve scripti kullanarak geçmişi yüklemeye başladığımda, uzmanlar sekmesini açtım ve orada olduğunu gördüm. yalnızca geçmişi yüklerken hatalar, aracıyı desteklemek için yazdım, geliştiricilerin yakın zamanda MT%'de bir şeyi güncellediklerini ve komut dosyası algoritmasının yanlış gitmiş olabileceğini söylediler tarih yüklerken verdiği bu, çok mektuplar için özür dilerim, durumu ayrıntılı olarak açıklamaya çalıştım, komisyoncu desteği yardım etmeyi reddetti, bizden değil diyorlar ama meta alıntılar, yazamazsınız bunlar, geri bildirimleri yok, bu yüzden burada ne yapacağımı sormaya karar verdim ve alıntıların tarihi için başka komut dosyaları var mı, evet, hemen söyleyeceğim, aylık TF kullanarak alıntıları indirmeye çalıştım, işe yaramaz, şimdiden teşekkürler
 
82Dmitry82 :
İyi günler, MT5 için alıntı geçmişini indirmek ve senkronize etmek için normal bir komut dosyası olup olmadığını bilmek istedim, yakın zamana kadar shistoryexport.ex5 kullandım ve her şey yolundaydı, tarayıcı çalıştı, sinyaller verdi, her şey net bir şekilde çalıştı, ancak dün öğle yemeğinden sonra, kesildiği için, tarayıcı geçmişi görmeyi bıraktı ve buna göre, stratejiye ve sinyal vermeye göre giriş noktaları arıyor, tarayıcıda olduğunu düşündüm, ancak birkaç versiyonumuz var ve vermeyi bıraktık. herkese sinyaller, hem benim için hem de bir arkadaşım için, terminali temizledim, işe yaramazdı, tüm bilgilerle sildim, yeniden yükledim ve scripti kullanarak geçmişi yüklemeye başladığımda, uzmanlar sekmesini açtım ve orada olduğunu gördüm. sadece geçmişi yüklerken hatalar vardı, aracıyı desteklemek için yazdım, geliştiricilerin yakın zamanda MT%'de bir şeyler güncellediklerini ve komut dosyası algoritmasının yanlış gitmiş olabileceğini söylediler, geçmişi indirirken verdiği şey bu, çoğu için özür dilerim mektuplar, sadece durumu detaylıca açıklamaya çalıştım, komisyoncu desteği yardım etmeyi reddetti, bizden değil diyorlar ama meta alıntılar, bunlara yazamazsınız, geri dönüşü yok bağlantı yok, bu yüzden burada ne yapacağımı ve alıntı tarihi için başka komut dosyaları olup olmadığını sormaya karar verdim, ama hemen söyleyeceğim, aylık TF'yi kullanarak alıntıları indirmeye çalıştım, işe yaramaz, şimdiden teşekkürler

Hiçbir şey söylemeyeceğim, ancak siparişlerden birini yerine getirirken tarihsel verilerle sorun yaşadığım tek ofis bu - yani, hayır.

Müşteriye diğer brokerlerin tekliflerini test etmesini söyleyene kadar sebep arayışıyla işkence gördüm. Ve her şeyin yolunda olduğu ortaya çıktı.

Bu kaynak üzerinde komisyoncuları tartışmak yasak olduğu için, burada duralım.

 
 

tam bir örneğiniz yok, lütfen tekrarlanabilir kod gönderin, yani. tamamen bir sınıf şablonu ve bu şablonu kullanarak bir nesne oluşturduğunuz bir kod örneği, şimdiye kadar sadece "telepatlar tatilde" .... Kodun basitçe derlenmediğinden şüpheleniyorum, ilk başta birçok tartışmalı nokta var şablonunuza bir göz atın, belki Almanca'daki mantığı göremiyorum

 
Artyom Trishkin :

Hiçbir şey söylemeyeceğim, ancak siparişlerden birini yerine getirirken tarihsel verilerle sorun yaşadığım tek ofis bu - yani, hayır.

Müşteriye diğer brokerlerin tekliflerini test etmesini söyleyene kadar sebep arayışıyla işkence gördüm. Ve her şeyin yolunda olduğu ortaya çıktı.

Bu kaynak üzerinde komisyoncuları tartışmak yasak olduğu için, burada duralım.

Yani işin gerçeği şu ki, altı aydan fazla bir süredir hiçbir problem yaşamadılar, ofisi değiştirmek sorun değil, sadece diğerlerinde, MT5'te Amerika yok ve bu çok gerekli bir seçenek, ancak siz hızlı ve işlem üzerine tarayıcı yazamıyorlar, zaten nedense denediler, bizimki bir macdi histogramı kullanıyor, bu bir sorun gibi görünüyor, en azından hızlı bir şekilde sipariş vermek istediklerinde, görüntüledikten sonra cevap olumsuzdu. TK, her şey platformun yerleşik hindilerine dayandı, sadece mmvb bazen kış uykusunda ve Amerika para kazanıyor

 
Igor Makanu :

tam bir örneğiniz yok, lütfen tekrarlanabilir kod gönderin, yani. tamamen bir sınıf şablonu ve bu şablonu kullanarak bir nesne oluşturduğunuz bir kod örneği, şimdiye kadar sadece "telepatlar tatilde" .... Kodun basitçe derlenmediğinden şüpheleniyorum, ilk başta birçok tartışmalı nokta var şablonunuza bir göz atın, belki Almanca'daki mantığı göremiyorum

Bu şekilde çalışması gerekir.

 #property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict

#define templ(T)           template < typename T> // задача данного макроса определять int bool double и т.д

//Далее пишем макрос который будет принимать массив и возвращать
//результат с помощью вызова перегружаемой функции которая будет вызываться из класса, но в моём примере вписана простая функция,
// я 3 дня посидел и выяснил что макрос может принимать массивы любой размеренности  в принципе об этом написано в справке что макрос может принимать эл. любого типа
#define Vosmas(a,b,c,d,e) /*return*/ (Fun(a,b,c,d,e)) //a- массив, 
                                                     //b- номер строки если нужен
                                                     //c,d- номера измерений если нужны и массив многомерный

int Mas[ 2 ],Mas2[ 2 ][ 2 ],Mas3[ 2 ][ 2 ][ 2 ]; //объявил массивы которые будут хранить информацию// обработка с помощью классов должна быть любого типа templ(T)

int OnInit ()
{ int Perem= 0 ;
//макрос должен вызвать функцию из класса и сделать следующее/ в моём примере будет простая функция
 Perem=Vosmas(Mas, 0 , 0 , 0 , 3 );
 Print ( "Vosmas: " ,Perem); //результат 3
return ( INIT_SUCCEEDED );}

templ(T) class CData{
public :CData(){};~CData(){};
       //перегружаемая функция Total() с наращиваемым количеством аргументов, не знаю будет ли оно наращивать аргументы вроде записывается но когда дойдёт до расчётов увидим
       //хотелось бы с этим разобраться 
       //а также делать такую перегрузку 
       T Total(T &mas[]    , int y1= 0 ...){ return (mas[y1]);}   //y2 весит в холостую  
       T Total(T &mas[][]  , int y1= 0 ...){ return (mas[y1][y2]);}
       T Total(T &mas[][][], int y1= 0 ...){ return (mas[y1][y2][y3]);}};
       
         
templ(T) T Fun(T &a[], int b, int c, int d, int e){a[b]=e; return (a[b]);} // оставшиеся аргументы будут висеть в холостую

Genel olarak, böyle bir etki elde etmek istiyorum, ancak sınıflar alanında deneyim yok. Kod derler ve çalışır

 
Seric29 :

Bu şekilde çalışması gerekir.

ne yazık ki, bu kodun mantığını anlamıyorum, makro değiştirmenin neden dil anahtar kelimeleri bildirmek olduğunu hayal etmek bile benim için zor,

mantıklı olarak, bu şekilde çok boyutlu bir diziye erişeceğinizden şüpheliyim, bence örneğiniz şablonu derlemedi ve buna göre derleme sırasında bir hata almadınız,

genel olarak yardımcı olmayacağım, belki başka biri örneğinizi anlar

 
Igor Makanu :

ne yazık ki bu kodun mantığını anlamıyorum, makro ikamenin neden dil anahtar kelimeleri bildirmek olduğunu hayal etmek bile benim için zor,

mantıklı olarak, bu şekilde çok boyutlu bir diziye erişeceğinizden şüpheliyim, bence örneğiniz şablonu derlemedi ve buna göre derleme sırasında bir hata almadınız,

genel olarak yardımcı olmayacağım, belki başka biri örneğinizi anlar

Kod derleniyor ancak tamamlanmadı, mesele bu sonucu elde etmektir.

 return (mas[y1]);

Bir sınıftan bir işlev çağırmam ve bu değeri almam gerekiyor.

 
Seric29 :

Kod derleniyor ancak tamamlanmadı

tekrar: derleme hatası almamış olmanız, şablon sınıfınızın dahil edildiği anlamına gelmez - CData sınıfı nesnesi nerede? - Bir şablon bildirimi görüyorum, ancak böyle bir değişken nerede? - nesne?

eğer soru sizin için "hayati" ise, o zaman tamamen tekrarlanabilir bir kod yapın - bu tamamen sizin takdirinize bağlı olarak ..... yorumsuz ve yine, makro ikame kullanmanın mantığını anlamıyorum

 #define templ(T)           template < typename T>

belki de hepsi "tuz", nadiren makro ikameleri kullanıyorum, en azından bir makro kullanırsam, sonunda ne vereceğini anlıyorum, örneğinde bu benim için bir gizem

 
Igor Makanu :

tekrar: derleme hatası almamış olmanız, şablon sınıfınızın dahil edildiği anlamına gelmez - CData sınıfı nesnesi nerede? - Bir şablon bildirimi görüyorum, ancak böyle bir değişken nerede? - nesne?

eğer soru sizin için "hayati" ise, o zaman tamamen tekrarlanabilir bir kod yapın - bu tamamen sizin takdirinize bağlı olarak ..... yorumsuz ve yine, makro ikame kullanmanın mantığını anlamıyorum

belki de hepsi "tuz", nadiren makro ikameleri kullanıyorum, en azından bir makro kullanırsam, sonunda ne vereceğini anlıyorum, örneğinde bu benim için bir gizem

Bir makronun görevi, bir sınıftan bir fonksiyon çağırmak ve bu fonksiyona bir değer iletmektir. bir makro herhangi bir boyutta bir dizi alabilir, bu yüzden böyle bir şema çizmeye çalışıyorum. Tabii ki çok fazla taş var, ancak bir sınıftan bir işlev çağırmam gerekiyor ve bir sınıftan basit bir işlevi nasıl çağıracağımı bilmiyorum (benim durumumda, Total yönteminin açıklaması yok), bu yardımda yazmıyor, yeniden iletimle ilgili karmaşık örnekler var.

 #property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict

#define templ(T)           template < typename T> // задача данного макроса определять int bool double и т.д

#define Vosmas(a,b,c,d,e)   5

int Mas[ 2 ],Mas2[ 2 ][ 2 ],Mas3[ 2 ][ 2 ][ 2 ]; //объявил массивы которые будут хранить информацию// обработка с помощью классов должна быть любого типа templ(T)

int OnInit ()
{ int Perem= 0 ;
Perem=Vosmas(Mas, 0 , 0 , 0 , 0 );
Print ( "Vosmas: " ,Perem);
Perem=Vosmas(Mas2, 0 , 0 , 0 , 0 );
Print ( "Vosmas: " ,Perem);
Perem=Vosmas(Mas3, 0 , 0 , 0 , 0 );
Print ( "Vosmas: " ,Perem); //во всех случаях результат 5
return ( INIT_SUCCEEDED );}

İşte herhangi bir boyutta bir dizi alan bir makro örneği, geliştiricilerin bu özellikleri karmaşık öğelerle normal çalışmadan kesmesi kötü

Şablon olmadan da mümkündür, ancak elbette bir şablonla daha iyidir.