MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 672
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Aslında bunu yaptım ama uzun tepki süresini sevmiyorum.
işlem uzun değil, tik ile ... ama genel olarak. yardımı okumaya başlayın, “poke yöntemini” kullanarak MQL çalışamazsınız, MQL C ++ tabanlıdır, ancak buna bağlıdır MT platformu, yardımı incelemeden hiçbir yolu yoktur
kodunuzda ve dosyalarla çalışın ve terminalin global değişkenleriyle çalışın ve grafiklerle çalışın ve ... ve orada her şey bir kerede birçok kez yapılır, gerçekten çok fazla gereksiz işlem var
hızlı yanıt istiyorsanız, OnChartEvent() kullanın, ancak test cihazında oluşturulmaz, ancak önce MQL4 yardımını incelemeye başlayın
işlem uzun değil, tik ile ... ama genel olarak. yardımı okumaya başlayın, “poke yöntemini” kullanarak MQL çalışamazsınız, MQL C ++ tabanlıdır, ancak buna bağlıdır MT platformu, yardımı incelemeden hiçbir yolu yoktur
kodunuzda ve dosyalarla çalışın ve terminalin global değişkenleriyle çalışın ve grafiklerle çalışın ve ... ve orada her şey bir kerede birçok kez yapılır, gerçekten çok fazla gereksiz işlem var
hızlı yanıt istiyorsanız, OnChartEvent() kullanın, ancak test cihazında oluşturulmaz, ancak önce MQL4 yardımını incelemeye başlayın
Herkese selam.
Kod kitaplığında yararlı bir Ind-Fractals göstergesi buldum. Ancak, düzgün hesaplamak yerine her çubukta fraktallar çizer. Göstergeyi kullanmak istiyorum ama "bozuk" (((Bir hata bulmama yardım edin, yazarla iletişime geçmeye çalıştım ama mesajlara cevap vermiyor. Kolaylık olması için kodu buraya kopyaladım.
#property telif hakkı "Telif hakkı © 2005, MetaQuotes Software Corp."
#özellik bağlantısı "http://www.metaquotes.net"
//----
#özellik göstergesi_chart_window
#özellik göstergesi_tamponları 8
#özellik göstergesi_renk1 Kırmızı
#özellik göstergesi_renk2 Kırmızı
#özellik göstergesi_renk3 Mavi
#özellik göstergesi_color4 Mavi
#özellik göstergesi_color5 Kireç
#özellik göstergesi_color6 Kireç
#özellik göstergesi_color7 Sienna
#özellik göstergesi_color8 Sienna
//---- giriş parametreleri
harici bool Comm=true;
//---- arabellekler
çift ExtMapBuffer1[];
çift ExtMapBuffer2[];
çift ExtMapBuffer3[];
çift ExtMapBuffer4[];
çift ExtMapBuffer5[];
çift ExtMapBuffer6[];
çift ExtMapBuffer7[];
çift ExtMapBuffer8[];
//+------------------------------------------- --------------------+
//| özel gösterge başlatma işlevi |
//+------------------------------------------- --------------------+
int init()
{
//---- göstergeler
SetIndexStyle(0,DRAW_ARROW);//gösterge çizgi stili
SetIndexArrow(0.217); // ok türünü ayarlar
SetIndexBuffer(0,ExtMapBuffer1);//Belirtilen gösterge arabelleğini çift tipte tek boyutlu dinamik diziyle bağlar. İşlev için 2 seçenek vardır.
SetIndexEmptyValue(0,0.0);//Gösterge satırı için boş değeri ayarlar.
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1.218);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexEmptyValue(1,0.0);
SetIndexStyle(2,DRAW_OK);
SetIndexArrow(2.217);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexEmptyValue(2,0.0);
SetIndexStyle(3,DRAW_OK);
SetIndexArrow(3.218);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexEmptyValue(3,0.0);
SetIndexStyle(4,DRAW_ARROW);
SetIndexArrow(4.217);
SetIndexBuffer(4,ExtMapBuffer5);
SetIndexEmptyValue(4,0.0);
SetIndexStyle(5,DRAW_OK);
SetIndexArrow(5,218);
SetIndexBuffer(5,ExtMapBuffer6);
SetIndexEmptyValue(5,0.0);
SetIndexStyle(6,DRAW_OK);
SetIndexArrow(6.217);
SetIndexBuffer(6,ExtMapBuffer7);
SetIndexEmptyValue(6,0.0);
SetIndexStyle(7,DRAW_OK);
SetIndexArrow(7.218);
SetIndexBuffer(7,ExtMapBuffer8);
SetIndexEmptyValue(7,0.0);
dönüş(0); }
//+------------------------------------------- --------------------+
//| Müşteri göstergesi sıfırlama işlevi |
//+------------------------------------------- --------------------+
int deinit() {dönüş(0); }
//------------------------------------------------ ------------------
bool Fraktal(string F,int Per,int shift) {
if(Period()>Per) return(-1);
Per=Per/Period()*2+MathCeil(Per/Period()/2);
if(shift<Per)dönüş(-1);
if(shift>bars-per)return(-1);
for(int i=1;i<=Per;i++) {
if(shift+i>=Barlar || shift-i<0) return(-1);
if(F=="U") {
if(Yüksek[shift+i]>Yüksek[shift])dönüş(-1);
if(Yüksek[shift-i]>=Yüksek[shift])dönüş(-1); }
if(F=="L") {
if(Low[shift+i]<Low[shift])dönüş(-1);
if(Low[shift-i]<=Düşük[shift])dönüş(-1); } }
dönüş(1); }
//------------------------------------------------ ------------------
int başlangıç()
{
int D1=1440,H4=240,H1=60,M15=15,B;
çift P;
int counted_bars=IndicatorCounted();// göstergenin son çağrısından bu yana değişmeyen çubuk sayısı
B=Barlar-sayılan_barlar;
if(counted_bars==0) B--;
if(Period()==D1)P=150*Point;// period mevcut grafik dönemini döndürür
if(Period()==H4)P=70*Nokta;
if(Period()==H1)P=40*Nokta;
if(Period()==30)P=30*Nokta;
if(Period()==M15)P=20*Nokta;
if(Period()==5)P=10*Nokta;
if(Period()==1)P=5*Nokta;
for(int shift=B;shift>0;shift--)
{
if(Fractal("U",M15,shift)==1) ExtMapBuffer1[shift]=Yüksek[shift]+P;
başka ExtMapBuffer1[shift]=0;
if(Fractal("L",M15,shift)==1) ExtMapBuffer2[shift]=Düşük[shift]-P;
başka ExtMapBuffer2[shift]=0;
if(Fractal("U",H1,shift)==1) ExtMapBuffer3[shift]=Yüksek[shift]+P;
başka ExtMapBuffer3[shift]=0;
if(Fractal("L",H1,shift)==1) ExtMapBuffer4[shift]=Düşük[shift]-P;
başka ExtMapBuffer4[shift]=0;
if(Fractal("U",H4,shift)==1) ExtMapBuffer5[shift]=Yüksek[shift]+P;
başka ExtMapBuffer5[shift]=0;
if(Fractal("L",H4,shift)==1) ExtMapBuffer6[shift]=Düşük[shift]-P;
başka ExtMapBuffer6[shift]=0;
if(Fractal("U",D1,shift)==1) ExtMapBuffer7[shift]=Yüksek[shift]+P;
başka ExtMapBuffer7[shift]=0;
if(Fractal("L",D1,shift)==1) ExtMapBuffer8[shift]=Düşük[shift]-P;
başka ExtMapBuffer8[shift]=0;
}
if(İletişim) Yorum(" D1 - kahverengi\n H4 - yeşil\n H1 - mavi\nM15 - kırmızı ");
dönüş(0);
}
Böyle bir kod kaynağı için burada azarladılar, ilk defa aynısını aldım :-)
Alt + S ile açılan forma kodu girmeniz gerekiyor.
Böyle bir kod kaynağı için burada azarladılar, ilk defa aynısını aldım :-)
Alt + S ile açılan forma kodu girmeniz gerekiyor.
Azarlamak? Hiçbir durumda. Kodu istediğiniz gibi yazın. Ama ... sorunuza bir cevap almak istiyorsanız, o zaman yardım istediğiniz kişilere saygı duymaya çalışın. Her şey basit.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu
Artyom Trishkin , 2018.10.18 08:07
Şunu yapalım: düzenleyicide bir gösterge şablonu oluşturun, oluştururken gerekli sayıda giriş değişkeni ve çizilebilir arabellek ekleyin.
Ardından, belirli bir görevden ne yapılması gerektiğini analiz edeceğiz.
En son bunu yaptığımda, yalnızca değişkenin ve dizinin adını değiştirdim.
iMA kullanırken, i-p yalnızca mumda 100'den fazla noktanın olduğu haftalarda ve günlerde çalıştı, daha küçük zaman dilimlerinde hiçbir şey çizmez. Yuvarlama meselesi gibi görünüyor.
iMAOnArray kullanılırsa, tüm TF'lerde i-ra penceresi boştur. Günlükte herhangi bir hata yok.
iMAOnArray kullanılırsa, tüm TF'lerde i-ra penceresi boştur. Günlükte herhangi bir hata yok.
yine de, iMAOnArray() öğesini 1 periyotla kullanıyorsunuz, yani. iMAOnArray() değeri, esasen tmp1 dizisinin değeri olacaktır.
Ne düşündüğünüzü anlamak istiyorsanız, (i= 1 ; i<10 ; i++) için döngüyü kısaltın
ve hesaplamak istediğiniz tüm verileri yazdırın, ancak bir tür karmaşık formülü hesaplamak değil, Mashka'yı iMAOnArray() kullanarak almak ve oluşturmak daha kolay olsa da - bu iMA, bu iMAOnArray() aynı hesaplamalardır .. .. ne yazık ki, eğer teknik bir soru bu forumda cevaplanabiliyorsa, o zaman sadece kendiniz saymayı ve bilgi ile uğraşmayı öğrenmelisiniz.
En son bunu yaptığımda, yalnızca değişkenin ve dizinin adını değiştirdim.
iMA kullanırken, i-p yalnızca mumda 100'den fazla noktanın olduğu haftalarda ve günlerde çalıştı, daha küçük zaman dilimlerinde hiçbir şey çizmez. Yuvarlama meselesi gibi görünüyor.
iMAOnArray kullanılırsa, tüm TF'lerde i-ra penceresi boştur. Günlükte herhangi bir hata yok.
İlk döngü, ilk tamponun değerlerini hesaplar;
ikinci döngüde, ilk döngüde hesaplanan değerleri kullanarak MA'yı hesaplayın.
iMAOnArray()'in ne anlama geldiğini düşünün. Dizi üzerinde ayrı MA yazın. Bu nasıl tercüme edilir? Herkesin elinde bir Google çevirmeni vardır. Diziye in-translate-get: MA getiriyoruz.
Onlar. - Hazır, önceden hesaplanmış ve doldurulmuş bir dizi üzerine inşa edilmiş hareketli ortalama.
Buna göre: ilk döngü, gerekli dizinin hazırlanması, ikinci döngü, ilk döngüde hazırlanan diziye dayalı hareketli bir ortalamanın oluşturulmasıdır.
Ne yapıyorsun? İlk dizideki değeri girin (geri kalan değerler henüz hazırlanmamıştır) ve hemen MA'yı bu değer üzerinde oluşturmaya çalışın.
İşte verdiğim şablon:
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu
Artyom Trishkin , 2018.10.18 09:39
Gösterge:
Ondan beşle ilgili her şeyi atabilir ve dördü için bir şablon alabilirsiniz. Bu şablon çok platformlu olmasına rağmen - aynı anda her iki terminal için de kullanılabilir - sadece kendi arabelleklerinizi ve numaralarını ayarlayın. Bu şablonda, buradan görülebilecek şekilde iki tane çizilmiş ve bir tane hesaplanmıştır:
= yine de, iMAOnArray()'i 1 periyotla kullanıyorsunuz, yani. iMAOnArray() değeri, esasen tmp1 dizisinin değeri olacaktır.
Kullanmak için farklı değerler denedim, bu deneylerin son seçeneği olarak 1 kaldı.
Nedense tüm TF'lerde i-ra tamponuna aynı sayı yazılır, örneğin ip1Buf[4] = 2147483647.0, dizi değerlerinin hepsi farklı iken tmp1[4] = 0.1300000000000097 vb.
Ancak bu durumda bile düz bir çizgi çizilmelidir ve i-ra şemasında kesinlikle hiçbir şey yoktur, skala 0'dan 0'a işaretlenmiştir.
= yine de, iMAOnArray()'i 1 periyotla kullanıyorsunuz, yani. iMAOnArray() değeri, esasen tmp1 dizisinin değeri olacaktır.
Kullanmak için farklı değerler denedim, bu deneylerin son seçeneği olarak 1 kaldı.
Nedense tüm TF'lerde i-ra tamponuna aynı sayı yazılır, örneğin ip1Buf[4] = 2147483647.0 dizi değerlerinin tamamı farklı iken tmp1[4] = 0.1300000000000097 vb.
Ancak bu durumda bile düz bir çizgi çizilmelidir ve i-ra şemasında kesinlikle hiçbir şey yoktur, skala 0'dan 0'a işaretlenmiştir.
2147483647.0 Peki, aramayı kullanmaya başlayın! https://www.mql5.com/ru/forum/224831
bir kez daha yazdım Artem az önce yazdım, kendi başına okumalısın, basit bir tane ile başla... ikinci döngüde, içinde yakın olduğu önceden hesaplanmış arabellek için MA'yı hesaplayın