devam etmek için...
Bu örneğin satırlarını dönüştürmeyi düşündüm:
if(m_method_fast!=MODE_SMA && m_method_fast!=MODE_EMA && m_method_fast!=MODE_SMMA && m_method_fast!=MODE_LWMA)
if(m_method_slow!=MODE_SMA && m_method_slow!=MODE_EMA && m_method_slow!=MODE_SMMA && m_method_slow!=MODE_LWMA)
Algoritmanın içine:
1) iki dizi:
ilki m_method_fast ve m_method_slow içerir
ikincisi ENUM_MA_METHOD numaralandırma değerlerini içerir.
2) Bir döngü içinde, ilk dizinin değerini alarak, ikincisinde bulunup bulunmadığını kontrol edin.
Bunu nasıl uygulayacağımı söyleyebilir misiniz?
CArray'i bağlamak gerektiğini anlıyorum. Ama ne tür?
Kim, lütfen, kodun bir bölümünü yazabilir, çünkü temel temel şeyler ve sözdizimi ile henüz yakalayamıyorum.
Teşekkür ederim!

- www.mql5.com
devam etmek için...
Bu örneğin satırlarını dönüştürmeyi düşündüm:
if(m_method_fast!=MODE_SMA && m_method_fast!=MODE_EMA && m_method_fast!=MODE_SMMA && m_method_fast!=MODE_LWMA)
if(m_method_slow!=MODE_SMA && m_method_slow!=MODE_EMA && m_method_slow!=MODE_SMMA && m_method_slow!=MODE_LWMA)
Algoritmanın içine:
1) iki dizi:
ilki m_method_fast ve m_method_slow içerir
ikincisi ENUM_MA_METHOD numaralandırma değerlerini içerir.
2) Bir döngü içinde, ilk dizinin değerini alarak, ikincisinde bulunup bulunmadığını kontrol edin.
Bunu nasıl uygulayacağımı söyleyebilir misiniz?
CArray'i bağlamak gerektiğini anlıyorum. Ama ne tür?
Kim, lütfen, kodun bir kısmını yazabilir, çünkü temel temel şeyler ve sözdizimi ile henüz yakalayamıyorum.
Teşekkürler!
Bunun gibi:
func(int& array1[],int& array2[]) { int total1=ArraySize(array1); int total2=ArraySize(array2); //--- for(int i=0;i<total1;i++) { for(int j=0;j<total2;j++) { if(array1[i]==array2[j]) { // buldum } } } }
Evet, Yeni Başlayanlar için C++'da bu noktaya zaten gelmiştim :-)
Ancak orada ENUM_MA_METHOD diye bir veri tipi yok
Bu numaralandırmanın hangi veri türünden oluştuğunu nasıl bulabilirim? ENUM_MA_METHOD numar alandırmasının kendisi üzerinden döngü yapmak mümkün mü?
Şimdi iki yol görüyorum:
//her iki diziyi de tanımlamanın ilk yolu ENUM_MA_METHOD l_array_enum_ma_method[3]; l_array_enum_ma_method[0]=MODE_SMA; l_array_enum_ma_method[1]=MODE_EMA; l_array_enum_ma_method[2]=MODE_SMMA; l_array_enum_ma_method[3]=MODE_LWMA; print("array size %d", ArraySize(l_array_enum_ma_method)); print("ENUM_MA_METHOD size %d", ArraySize(ENUM_MA_METHOD)); ENUM_MA_METHOD l_array_select_method[1]; l_array_select_method[0]=m_MethodFast; l_array_select_method[1]=m_MethodSlow; //şemaya göre daha fazlası //ikinci yol, kütüphaneyi bağlayın //#include <Arrays\ArrayInt.mqh> CArrayInt *l_array_enum_ma_method=new CArrayInt; l_array_enum_ma_method[0]=MODE_SMA; l_array_enum_ma_method[1]=MODE_EMA; l_array_enum_ma_method[2]=MODE_SMMA; l_array_enum_ma_method[3]=MODE_LWMA; l_array_enum_ma_method.Sort(); //--- arama öğesi if(l_array_enum_ma_method.Search(m_MethodFast)!=-1) printf("Element found"); else printf("Element not found"); //--- diziyi sil delete l_array_enum_ma_method;
ikinci şekilde belirli bir türde bir kütüphane bağlamanız gerekir ve ENUM_MA_METHOD hangi türdür?
hmm... garip, yanıtla'ya tıkladım ve yeni bir gönderi olduğu ortaya çıktı....
Evet, Yeni Başlayanlar için C++'da bu noktaya zaten gelmiştim :-)
Ancak orada ENUM_MA_METHOD diye bir veri tipi yok
Bu numaralandırmanın hangi veri türünden oluştuğunu nasıl bulabilirim? ENUM_MA_METHOD numar alandırmasının kendisi üzerinden döngü yapmak mümkün mü?
Şimdi iki yol görüyorum:
ikinci şekilde belirli bir türde bir kütüphane bağlamanız gerekir ve ENUM_MA_METHOD hangi türdür?
hmm... garip, yanıtla'ya tıkladım ve yeni bir yazı olduğu ortaya çıktı....
Birinci yol
ENUM_MA_METHOD l_array_enum_ma_method[]={MODE_SMA,MODE_EMA,MODE_SMMA,MODE_LWMA}; //--- satırın ilerisinde
İkinci yol:
#include <Arrays\ArrayInt.mqh> CArrayInt l_array_enum_ma_method; //--- l_array_enum_ma_method.Add(MODE_SMA); l_array_enum_ma_method.Add(MODE_EMA); l_array_enum_ma_method.Add(MODE_SMMA); l_array_enum_ma_method.Add(MODE_LWMA); //--- satırın ilerisinde
Neden bu kadar çok adım gerektiğini anlayamıyorum?
oops... çok teşekkürler, ben de bunu yapmaya çalışıyorum... off.
İlk durumda, bu kayıt yöntemini zaten görmüştüm, ancak henüz neye ihtiyacım olduğunu fark etmemiştim,
ve ikinci durumda - ArrayInt ile kafam karıştı. Int olduğu için bunun sadece sayı değerinin saklandığı anlamına geldiğini düşündüm, ancak ,
Görünüşe göre derleyici MODE_SMA'yı bir sayıya dönüştürüyor ve değeri geri alırken,(ENUM_MA_METHOD) türüne örtük bir dönüşüm (parantez kullanarak) gerçekleştirmek gerekecek, yani aşağıdakine benzer bir şey.
ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
Not: Üçüncü bölümde 3. Parametreleri ayarlama yöntemleri, zamanından önce bildirilen satırları silmemiz gerektiğini düşünüyorum,
:
CiCustom m_fast_ma; // nesne olarak gösterge CiCustom m_slow_ma; // nesne olarak gösterge
Not: Üçüncü bölüm 3. Parametreleri ayarlama yöntemleri'nde, zamanından önce bildirilen satırları silmemiz gerektiğini düşünüyorum:
Heyecanlanıyordum, ancak bunu aşamıyorum (comm - bellek adresi aktarımı hakkında bir şeyler okudum, ancak o şekilde de çalışmadı):
Derleyici 'm_MethodFast' - sabit ifade gerekli, ' m_MethodSlow' - sabit ifade gerekli hatasını döndürüyor
Tabii ki, bunlar aptallar için sorular. belki de makaleyi tıkamamak için bu tür soruları başka bir başlıkta sormalıyım?
//her iki diziyi de tanımlamanın ilk yolu //int *Finger_m_MethodFast; //int *Finger_m_MethodSlow; //Finger_m_MethodFast=&m_MethodFast; //Finger_m_MethodFast=&m_MethodSlow; // int l_array1_select_method[]={Finger_m_MethodFast,Finger_m_MethodFast}; ENUM_MA_METHOD l_array1_select_method[]={m_MethodFast,m_MethodSlow}; ENUM_MA_METHOD l_array2_enum_ma_method[]={MODE_SMA,MODE_EMA,MODE_SMMA,MODE_LWMA}; int total_array1=ArraySize(l_array1_select_method); int total_array2=ArraySize(l_array2_enum_ma_method); bool NoErrorsFlag=false; for(int i_array1=0;i_array1<total_array1;i_array1++) { for(int i_array2=0;i_array2<total_array2;i_array2++) { if(l_array1_select_method[i_array1]=l_array2_enum_ma_method[i_array2]) { NoErrorsFlag=true; } } if(!NoErrorsFlag) { PrintFormat("Geçersiz yumuşatma türü %s hareketli ortalama!",EnumToString(l_array1_select_method[i_array1])); } } if(!NoErrorsFlag) { return(false); }

- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Yeni makale 6 Adımda Kendi Alım Satım Robotunuzu Oluşturun! yayınlandı:
Alım satım sınıflarının nasıl oluşturulduğunu bilmiyorsanız ve "Nesne Yönelimli Programlama" kelimelerinden korkuyorsanız, bu makale tam size göredir. Aslında, kendi alım satım sinyalleri modülünüzü yazmak için ayrıntıları bilmenize gerek yoktur. Sadece bazı basit kurallara uyun. Geri kalan her şey MQL5 Sihirbazı tarafından yapılacak ve kullanıma hazır bir alım satım robotu elde edeceksiniz!
Doğru, MQL5 Sihirbazı, Uzman Danışmanların (EA) oluşturulmasını büyük ölçüde basitleştirir, ancak önce bunun için neyin giriş olarak kullanılacağını öğrenmeniz gerekir. MQL5 Sihirbazını kullanarak bir Uzman Danışmanı otomatik olarak oluşturmak için, bileşenlerinin Temel Uzman Danışman Sınıfları bölümündeki beş temel sınıfa uyduğundan emin olun:
Nesne yönelimli programlama (OOP) olarak adlandırılan "büyük ve korkunç" yaklaşımın tüm gücü buradadır. Ama korkmayın, artık hemen hemen herkesin birçok fonksiyonu olan bir cep telefonu var ve neredeyse hiç kimse nasıl çalıştığını bilmiyor. Bütün bunları incelememize gerek yok, sadece CExpertSignal sınıfının bazı fonksiyonlarını tartışacağız.
Yazar: MetaQuotes