MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 52
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
Dur / 200 alırsa ne yapmalı
ancak
tp=NormalizeÇift((fiyat+(Kar Al*_Puan))),Rakamlar);
dolar-yen üzerinde 117.000 oranında 317.000 verecek
beklenen sonuç 117.200
Point()== 0,001 (USDJPY'de) ise, 200*0,001, 0,2'ye eşittir
Şimdi, 0.2'ye 117,0 eklersek, 117,2 elde ederiz.
Peki "haksızlık" nerede?
Point()==0,001 (USDJPY'de) ise, 200*0,001 0,2'ye eşittir
Şimdi, 0.2'ye 117,0 eklersek, 117,2 elde ederiz.
Peki "haksızlık" nerede?
117+(200*_Point) değerinin 117.200 vermesi bekleniyor
normalde eurodolar üzerinde test edilir
Vitaly yukarıda yazdı, teşekkürler, o zaman yukarıda sürprizlere bakacağım
Yol boyunca bulundu
Bence bu bir ara algoritma olarak oldukça iyi, şimdi bu anları bir şekilde filtrelememiz gerekiyor.
https://www.mql5.com/ru/charts/6351907/audjpy-m5-metaquotes-software-corp
117+(200*_Point) değerinin 117.200 vermesi bekleniyor
...Eh, o kadar çok veriyor ki ... Pekala, hesabı gösterdim. Yoksa çoklu para biriminiz var ve "yerel olmayan" bir sembolden veri mi alıyorsunuz?
Ardından Point() ve Digits() yerine SymbolInfoDouble() ve (int)SymbolInfoInteger() kullanın
Eh, o kadar çok veriyor ki ... Pekala, hesabı gösterdim. Yoksa çoklu para biriminiz var ve "yerel olmayan" bir sembolden veri mi alıyorsunuz?
Ardından Point() ve Digits() yerine SymbolInfoDouble() ve (int)SymbolInfoInteger() kullanın
Teşekkürler işe yarıyor)))
Şu anda sipariş zincirine sonda eklemenin bir yolunu arıyorum
115.000'den 117.000'e kadar 200 adımda seçilen 10 sipariş
her parti bir öncekinden x fazladır
amaç, (ortalama fiyat) + (y*_Puan) temelinde tüm sipariş grubunu takip etmektir.
İzleyen bende var, soru tüm paketin ortalama fiyatına nasıl ekleneceği ve lotlara bağlı olarak nasıl hesaplanacağı.
Teşekkürler işe yarıyor)))
Şu anda sipariş zincirine sonda eklemenin bir yolunu arıyorum
115.000'den 117.000'e kadar 200 adımda seçilen 10 sipariş
her parti bir öncekinden x fazladır
amaç, (ortalama fiyat) + (y*_Puan) temelinde tüm sipariş grubunu takip etmektir.
İzleyen bende var, soru tüm paketin ortalama fiyatına nasıl ekleneceği ve lotlara bağlı olarak nasıl hesaplanacağı.
Evrensel bir tavsiye: Sıfırdan programlamayı öğrenin. O zaman böyle sorular olmayacak, programlama kolay değil.
Ve özünde soru şu: Bir döngüde TÜM siparişleri gözden geçirmeniz, yalnızca "gerekli" olanları seçmeli ve bunları değiştirmelisiniz. Ancak, seçilen iş sırasını değiştirme olasılığı çok yüksek olduğundan, bu konuda çok dikkatli olmanız gerekir.
Evrensel bir tavsiye: Sıfırdan programlamayı öğrenin. O zaman böyle sorular olmayacak, programlama kolay değil.
Ve özünde soru şu: Bir döngüde TÜM siparişleri gözden geçirmeniz, yalnızca "gerekli" olanları seçmeli ve bunları değiştirmelisiniz. Ancak, seçilen iş sırasını değiştirme olasılığı çok yüksek olduğundan, bu konuda çok dikkatli olmanız gerekir.
Herkese iyi günler, MA'ya dayalı bir danışman yazdı. (KODU AŞAĞIDA BULUNMAKTADIR) Kısa bir süre önce MQL4'te yazmaya başladım ve basit bir tane ile başlamaya karar verdim. Bu yüzden neyi yanlış yaptığımı bilmek istiyorum. Danışmanın özü basittir: iki veya üç MA kesiştiğinde bir uyarı verin (YÖNTEM'e bağlı olarak: Agresif=iki MA çapraz, Muhafazakar=3 MA çapraz)... İşte bu kadar. Pazara kendim gireceğim. Expert Advisor'a iki fonksiyon yazdım: Agresif - bu, en hızlı iki MA'nın ve Muhafazakar'ın basit bir kesişiminde bir sinyaldir, iki hızlı MA'nın kesişiminde en yavaş olanı da dikkate alınmalıdır (yani, bir trend yönünde sinyal). Sorun, danışmanın yalnızca BİR uyarı vermesi (başlatıldığında veya zaman çerçevesi değiştiğinde) ve sonraki tüm sinyallerde sessiz olmasıdır! Bana neyin yanlış olduğunu söylersen minnettar olurum. Tüm olaylar için MQL4 kurallarına göre belirtilen işlevler. Elbette On Tick olayında işlevsiz her şeyi kayıt etmek mümkün olurdu, ancak işlevlerinçağrılmasının kolay olması için işlevleri ayrı ayrı kaydetmek istiyorum ve ayrıca yeni "filtreler" işlevleri eklemek istiyorum. zaman.
kod
================================================= ============================================
extern bool Yöntem=yanlış; // yöntem seçimi: Muhafazakar veya Agresif
extern int Zaman_Çerçevesi=1;//Zaman Çerçevesi
input bool Yöntem=yanlış; //Muhafazakar-DOĞRU | Agresif-YANLIŞ
harici int FastMA_Parametre=5;
harici int MidMA_Parameter=8;
harici int SlowMA_Parameter=18;
harici int TrendMA=163;
extern bool DemarkGo=yanlış;
harici intDemperiod=4;
int rez;// MA kesişimi aşağıysa, rez=-1. yukarı ise rez=1.
//+------------------------------------------- --------------------+
// MA'yı başlat
double FastMA=iMA(Symbol(),Time_Frame,FastMA_Parameter,0,3,0,0);// Hızlı MA
double MiddiMA=iMA(Symbol(),Time_Frame,MidMA_Parameter,0,3,0,0);// Ortalama MA
double SlowMA=iMA(Symbol(),Time_Frame,SlowMA_Parameter,0,1,0,0); yavaş MA
//+------------------------------------------- --------------------+
int OnInit()
{
öz = 0;
dönüş(INIT_SUCCESSED);
}
//=====================================
//------------------------------------------------ ------------------------------
geçersiz OnDeinit(const int nedeni)
{
}
//===========================================
//+---------------------Metod=true ise muhafazakar sinyal işlevi-------------------------- --------------------+
int Muhafazakar()
// 3 satırın yukarı doğru kesişip kesişmediğini kontrol edin
{
if (Yöntem==doğru)
{
if(FastMA>MiddiMA&&MiddiMA>SlowMA&&rez<=0)
{
Alert(Symbol(),Time_Frame," ----UP----.Tutarlı");
öz=1;
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," "," SlowMA ",SlowMA," rez ",rez);
dönüş(ler);
}
// 3 satırın aşağı doğru kesişip kesişmediğini kontrol edin
if(FastMA<MiddiMA&&MiddiMA<SlowMA&&rez>=0)
{
Alert(Symbol(),Time_Frame," ----DOWN----.Tutarlı");
öz=-1;
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," "," SlowMA ",SlowMA," rez ",rez);
dönüş(ler);
}
}
dönüş(ler);
}
//==============================================
//++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++
Agresif sinyal fonksiyonu eğer
int Agresif()
// Yavaşlama olmadan 2 çizginin yukarı doğru kesişimini kontrol edin
{
if (Yöntem==yanlış)
{
if(FastMA>MiddiMA&&rez<=0)
{
Alert(Symbol(),Time_Frame," ----YUKARI----. Agresif");
öz=1;
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," "," SlowMA ",SlowMA," rez ",rez);
}
// 2 doğrunun aşağı doğru kesişimi yavaşlamadan kontrol ediliyor
if(FastMA<MiddiMA&&rez>=0)
{
Alert(Symbol(),Time_Frame," ----DOWN----. Agresif");
öz=-1;
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," "," SlowMA ",SlowMA," rez ",rez);
}
}
dönüş(ler);
}
Yüksek değil, ancak %100 Şu anda sonuncuyu takip ediyorum ve geri kalanı duraklatılıyor, ancak şema yanlış ve daha iyisini yapmak istiyorum
Hayır, %100 değil. Yoksa başka bir şeyden mi bahsediyorsun.
Genel olarak, algoritma aşağıdaki gibidir:
Tüm siparişler arasında bir döngü düzenleyin.
Onunla çalışmak için bir sonraki siparişi seçersiniz.
Bu sıranın gerekli olup olmadığını kontrol edersiniz... Değilse, döngünün bir sonraki yinelemesi...
"Gerekli" ise, değişiklik için uygun olup olmadığını kontrol edersiniz. Basit bir karşılaştırmayla, StopLoss seviyesinden ne kadar uzakta
Mesafe yeterliyse, sırayı değiştirirsiniz.
Yani, tüm siparişler arasında bir döngünün olduğu bir modifikasyon fonksiyonunuz varsa ve döngü çağrılmadan önce de çalışıyorsa, seçilen sipariş değiştirilecektir ...
Hayır, %100 değil. Yoksa başka bir şeyden mi bahsediyorsun.
Genel olarak, algoritma aşağıdaki gibidir:
Tüm siparişler arasında bir döngü düzenleyin.
Onunla çalışmak için bir sonraki siparişi seçersiniz.
Bu sıranın gerekli olup olmadığını kontrol edersiniz... Değilse, döngünün bir sonraki yinelemesi...
"Gerekli" ise, değişiklik için uygun olup olmadığını kontrol edersiniz. Basit bir karşılaştırmayla, StopLoss seviyesinden ne kadar uzakta
Mesafe yeterliyse, sırayı değiştirirsiniz.
Yani, tüm siparişler için bir döngünün olduğu bir modifikasyon fonksiyonunuz varsa ve onu çağırmadan önce döngü de çalışıyorsa,seçilen sipariş değiştirilecektir ...