MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 489
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Merhaba. MT4 için bir Expert Advisor yazmak istiyorum, görevlerinden biri M1'de bir saat içinde Fibo çizgileri çizmek. Yani, 11.00'in başlangıcında, yüksek ve alçaklara odaklanarak 10.00 - 10.59 aralığında çizgiler çizmelidir. Farklı yollar denedim, en son ne olduğunu ortaya koydu. Büyük olasılıkla, çizim seviyeleri için kodu kısaltabilirsiniz. Sorun, verilen alanda çizgiler çizmemesidir.
int timemin=TimeDakika(Zaman[59]==0);
int timehour=TimeHour(Time[1] && TimeDakika(Zaman[0]));
int timemin1=TimeDakika(Zaman[0]==0);
int timehour1=TimeHour(Time[1] && TimeDakika(Zaman[59]));
int max=iEn Yüksek(Symbol(),1,MODE_HIGH,60,timehour);
int min=iLow(Symbol(),1,MODE_LOW,60,timehour);
çift çubuk=(iOpen(Symbol(),60,1)>iClose(Symbol(),60,1));
double bardn=(iOpen(Symbol(),60,1)<iClose(Symbol(),60,1));
ObjectDelete("FiboLevels"); //------Yeni seviye
eğer (barup)
{
WindowRedraw();
ObjectCreate(0,"FiboLevels",OBJ_FIBO,0,Süre[dk],Düşük[dk],Süre[zamansaat1],Yüksek[maks]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrGreen);
}
eğer (bardn)
{
WindowRedraw();
ObjectCreate(0,"FiboLevels",OBJ_FIBO,0,Süre[maks],Düşük[maks],Süre[zamansaat1],Yüksek[dak]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrRed);
}
double f1=ObjectGet("FiboLevels",OBJPROP_PRICE1); //İlk fiyatı seçer
double f2=ObjectGet("FiboLevels",OBJPROP_PRICE2); //İkinci fiyatı seçer ve grafiği çizer
çift Fark=f2-f1;
string a11=DoubleToStr(f2-Diff*0.0,Rakamlar);
string a12=DoubleToStr(f2-Diff*0.236,Rakamlar);
string a13=DoubleToStr(f2-Diff*0.382,Rakamlar);
string a14=DoubleToStr(f2-Diff*0.50,Rakamlar);
string a15=DoubleToStr(f2-Diff*0.618,Rakamlar);
string a16=DoubleToStr(f2-Diff*1.0,Rakamlar);
bool a1=ObjectSet("FiboLevels",OBJPROP_FIBOLEVELS,6);
bool a2=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+0,0.0);
bool a3=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+1,0.236);
bool a4=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+2,0.382);
bool a5=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+3,0.50);
bool a6=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+4,0.618);
bool a7=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+5,1.0);
bool a111=ObjectSetFiboDescription("FiboLevels",0,"0.0%");
bool a122=ObjectSetFiboDescription("FiboLevels",1,"23.6");
bool a133=ObjectSetFiboDescription("FiboLevels",2,"%38,2");
bool a144=ObjectSetFiboDescription("FiboLevels",3,"50.0%");
bool a155=ObjectSetFiboDescription("FiboLevels",4,"%61.8");
bool a166=ObjectSetFiboDescription("FiboLevels",5,"100.0%");
Merhaba. MT4 için bir Expert Advisor yazmak istiyorum, görevlerinden biri M1'de bir saat içinde Fibo çizgileri çizmek. Yani, 11.00'in başlangıcında, yüksek ve alçaklara odaklanarak 10.00 - 10.59 aralığında çizgiler çizmelidir. Farklı yollar denedim, en son ne olduğunu ortaya koydu. Büyük olasılıkla, çizim seviyeleri için kodu kısaltabilirsiniz. Sorun, verilen alanda çizgiler çizmemesidir.
çift çubuk=(iOpen(Symbol(),60,1)>iClose(Symbol(),60,1));double bardn=(iOpen(Symbol(),60,1)<iClose(Symbol(),60,1));
ObjectDelete("FiboLevels"); //------Yeni seviye
eğer (barup)
{
WindowRedraw();
ObjectCreate(0,"FiboLevels",OBJ_FIBO,0,Süre[dk],Düşük[dk],Süre[zamansaat1],Yüksek[maks]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrGreen);
}
eğer (bardn)
{
WindowRedraw();
ObjectCreate(0,"FiboLevels",OBJ_FIBO,0,Süre[maks],Düşük[maks],Süre[zamansaat1],Yüksek[dak]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrRed);
}
bu daha mı kısa bool barup=... WindowRedraw(); yine de yürütülecek - if öğesinden kaldırıldı
daha da kısa olabilir ... dosyama bakın
Lütfen kodu doğru yapıştırın.
Daha da net:
Beyler, neden her tik ile sipariş açıyorum? Bana bara nasıl konsantre olacağımı söyle?
Beyler, neden her tik ile sipariş açıyorum? Bana bara nasıl konsantre olacağımı söyle?
ATS'de açıklanan şartlara göre açılışa yeşil ışık yakıyor ve bu şekilde açıyor.
Bu durumda birçok çözüm var. Her şey sizin için neyin daha kabul edilebilir olduğuna bağlı.
Bir sonraki emrin ancak fiyat sonuncudan N. puan kadar gitmişse açıldığı söylenebilir. 1 barda birden fazla sipariş açmayacağı söylenebilir. Vb..
İhtiyacınız olan koşulları yazın ve çekte uygulayın.
ATS'de açıklanan şartlara göre açılışa yeşil ışık yakıyor ve bu şekilde açıyor.
Bu durumda birçok çözüm var. Her şey sizin için neyin daha kabul edilebilir olduğuna bağlı.
Bir sonraki emrin ancak fiyat sonuncudan N. puan kadar gitmişse açıldığı söylenebilir. 1 barda birden fazla sipariş açmayacağı söylenebilir. Vb..
İhtiyacınız olan koşulları yazın ve çekte uygulayın.
Bunun yeri için if ( iTime ( Symbol (), PERIOD_M1 , 0 )) { bir çubukta sipariş açmak için ne yazmalı?
Soru defalarca soruldu ve defalarca cevaplandı. Aramayı kullanma, örneğin burada
Soru defalarca soruldu ve defalarca cevaplandı. Aramayı kullanma, örneğin burada
Sayesinde!
Tünaydın!
Belirli hesaplamalar yapan bir EA'm var. Farklı mat işlemleri, diziler, döngüler kullanır. Sonuç bir dosyaya yazılır . Tüm adımları tamamladıktan sonra her şeye en baştan başlamalıdır. Ancak tüm hesaplamaları bir kez yapıyor ve ikinci kez başlayıp donuyor, hiçbir işlem olmuyor. Söylesene, belki yeni bir hesaplamaya başlamadan önce değişkenleri sıfırlamanız, dizileri temizlemeniz veya başka bir şey mi gerekiyor?
Tünaydın!
Belirli hesaplamalar yapan bir EA'm var. Farklı mat işlemleri, diziler, döngüler kullanır. Sonuç bir dosyaya yazılır . Tüm adımları tamamladıktan sonra her şeye en baştan başlamalıdır. Ancak tüm hesaplamaları bir kez yapıyor ve ikinci kez başlayıp donuyor, hiçbir işlem olmuyor. Söylesene, belki yeni bir hesaplamaya başlamadan önce değişkenleri sıfırlamanız, dizileri temizlemeniz veya başka bir şey mi gerekiyor?