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
Merhaba,
sadece mevcut aktif grafik sembolünün alış veya satış emrini değiştirmek mümkün mü?
Siparişi açmak için WindowsPriceonDropped işlevini kullandığım bir komut dosyasında benim için çok yararlı olacak.
Teşekkür ederim
...
dasio,
Bunun gibi bir şey deneyin:
{
if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==false) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
{
// do the proccessing you wish here
}
}
Merhaba,
sadece mevcut aktif grafik sembolünün alış veya satış emrini değiştirmek mümkün mü?
Siparişi açmak için WindowsPriceonDropped işlevini kullandığım bir komut dosyasında benim için çok yararlı olacak.
Teşekkür ederimKim bir meydan okuma ister?
Aşağıdakileri yapmak için bazı kodlara ihtiyacım var, ekteki ekran görüntüsüne bakın. Bu Al ticareti olacaktır.
Bir for döngüsü denedim, bir if koşulları karmaşası ve ikisi de aradığım sonuçları üretmedi.
Basit gibi görünüyor ama çalışmasını sağlayamadım.
Giriş koşulunuz şuna benzer şekilde yazılabilir:
if (Digits==3 || Digits==5) pipMultiplier = 10;
double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);
bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier));
if (openBuy)
{
// your code here
}
Aşağıdakileri yapmak için bazı kodlara ihtiyacım var, ekteki ekran görüntüsüne bakın. Bu Al ticareti olacaktır.
Bir for döngüsü denedim, bir if koşulları karmaşası ve ikisi de aradığım sonuçları üretmedi.
Basit gibi görünüyor ama çalışmasını sağlayamadım.Giriş koşulunuz şuna benzer şekilde yazılabilir:
if (Digits==3 || Digits==5) pipMultiplier = 10;
double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);
bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier));
if (openBuy)
{
// your code here
}
Ama bundan çok daha fazlası var. Gönderdiğiniz kod, Hareketli Ortalama'nın üzerinde yer alan çubuk için bana sinyal verecektir. Ama aynı zamanda, MA+5'i geçmemeleri koşuluyla, 5 bara kadar straddle barı geçen herhangi bir barda ticarete girmenin bir yoluna ihtiyacım var. Üst üste binme çubuğunda bir satın alma sinyali almamamın nedeni, üst üste binme çubuğunda DOĞRU olmayabilecek, ancak üst üste binme çubuğunu 5 bara kadar herhangi bir çubukta DOĞRU ise ve DOĞRU bir değer göstermesi gereken başka bir göstergenin olmasıdır. MA +5 sınırını aştım hala ticaret yapabilirim. Kurulum başına yalnızca bir tane birden fazla işlem yapmamak.
Aşağıdakiler şimdiye kadar sahip olduklarım. Bu noktada, yalnızca uygun çubukları altında bir okla işaretliyorum, yalnızca satın alır. Bunu çözdükten sonra, siparişi yürütmek için kodumu gireceğim. Basit göründüğünü biliyorum ama bariz bir şeyi kaçırmadığım sürece değil.
//+------------------------------------------------------------------+
double Poin;
//+------------------------------------------------------------------+
//| Custom initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
if (Point==0.00001) Poin=0.0001;
else {
if (Point==0.001) Poin=0.01;
else Poin=Point;
}
//----
return(0);
}
//+------------------------------------------------------------------+
// +
//+------------------------------------------------------------------+
int deinit(){
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start(){
int MAM1StartBar=1;
int M1MAEntryPoint1=0;
int M1MAEntryPoint2=5;
string sObjName;
//------Indicators-------------//
double MAM0= iMA(NULL,0,20,0,0,0,MAM1StartBar);
double MAM1= iMA(NULL,0,20,0,0,0,MAM1StartBar+1);
double M1High0 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar),Digits);
double M1High1 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+1),Digits);
double M1High2 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+2),Digits);
double M1High3 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+3),Digits);
double M1High4 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+4),Digits);
double M1High5 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+5),Digits);
double M1Low0 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar),Digits);
double M1Low1 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+1),Digits);
double M1Low2 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+2),Digits);
double M1Low3 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+3),Digits);
double M1Low4 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+4),Digits);
double M1Low5 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+5),Digits);
// double MAM1TRL1=NormalizeDouble(MAM0+M1MAEntryPoint1*Poin,Digits);
// double MAM1TRL2=NormalizeDouble(MAM0+M1MAEntryPoint2*Poin,Digits);
//Blue arrow indicates straddle bar
if(M1High0>= MAM0 && M1Low0<=MAM0){
sObjName="Test_BLine1"+Time[MAM1StartBar];
ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1.5*Poin);
ObjectSet(sObjName, OBJPROP_ARROWCODE, 241);
ObjectSet(sObjName, OBJPROP_COLOR, Blue);
}
//Aqua arrow indicates straddle bar+1
if(M1Low1=MAM0){
if(M1High1<=MAM0+M1MAEntryPoint2*Poin){
if(M1Low0 > MAM0){
sObjName="Test_BLine2"+Time[MAM1StartBar];
ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1*Poin);
ObjectSet(sObjName, OBJPROP_ARROWCODE, 241);
ObjectSet(sObjName, OBJPROP_COLOR, Aqua);
}
}
}
//----
return(0);
}
Bu ekran görüntüsünde 4. çubukta iptal etmeniz gerekir çünkü 3. çubuk MA +5 sınırını aşıyor, bu da 4. çubukta 3. çubuğun MA +5 sınırını aşıp aşmadığını kontrol etmeniz gerektiği anlamına geliyor. bu ticaret kurulumu.
Hiçbiri MA +5 sınırını aşmadığı için burada 5 çubuğun tümü uygundur
Bu ekran görüntüsünde 4. çubukta iptal etmeniz gerekir çünkü 3. çubuk MA +5 sınırını aşıyor, bu da 4. çubukta 3. çubuğun MA +5 sınırını aşıp aşmadığını kontrol etmeniz gerektiği anlamına geliyor, bu işin sonuydu. ticaret kurulumu.
Hiçbiri MA +5 sınırını aşmadığı için burada 5 çubuğun tümü uygundur
...
siber1
Örneklerinizde gördüğüm kadarıyla, tanımladığınız şekilde iptal edebilmek için geleceği de bilmeniz gerekir ("iptal" çubuğundan önce kurallar uygulanır ve bir git sinyali verirdi)
Öte yandan, koşulun girmesi için tüm çubukları geri test etmeye çalışırsanız, sonunda her zaman bir "kural ihlali" yaşarsınız ve pozisyona giremezsiniz.
Bu ekran görüntüsünde 4. çubukta iptal etmeniz gerekir çünkü 3. çubuk MA +5 sınırını aşıyor, bu da 4. çubukta 3. çubuğun MA +5 sınırını aşıp aşmadığını kontrol etmeniz gerektiği anlamına geliyor, bu işin sonu bu oldu ticaret kurulumu.
Hiçbiri MA +5 sınırını aşmadığı için burada 5 çubuğun tümü uygundur
Tümünü kapat Açık ticaret EA
Bu ea yapmak için bana yardım edebilecek var mı?
Bu EA, hedef kâr ve zarara ulaşıldığında her zaman açık ticaret çiftini kapatacaktır.
Her şeyi kapattığında, açılan ticareti izlemeye başlayın.
Bunu yapmak için sınırlı bir yeteneğim var.
Bu adet her çiftten ana yemekten ayrıdır.
Sinyal ve direnç/destek dinamik hatları.
Bu göstergeyi MT4 Dili'ne çevirmeme yardım eder misiniz?
a:=(hhv(kapat,tpr)+llv(kapat,tpr)+kapat)/3;
b:=(a1*2)-hhv(kapat,tpr);
hareketli b:=mov(b,tpr,basit);
c:=(a1*2)-llv(kapat,tpr);
hareketli c:=mov(c,tpr,basit);
d:=(hhv(kapat,tpr/2)+llv(kapat,tpr/2)+kapat)/3;
hareketli d:=mov(d,tpr/2,basit);
akış:=(b+c+d)/3;
hareketli akış:=mov(akış,tpr,basit).
hhv= maksimum dönem değeri (seçilen zaman aralığındaki en yüksek kapanış fiyatı değeri)
llv= min dönem değeri (seçilen dönemdeki kapanış fiyatının en düşük değeri)
tpr=zaman aralığı (1'den istediğinize kadar)
mov= hareketli ortalama.
Çıktıda "akış" ve "hareketli akış" olmalıdır! Ayrıca "b", "b'yi hareket ettirmek", "c", "c'yi hareket ettirmek", "d" ve "d'yi hareket ettirmek" de olsa bu kötü bir şey değil!
Teşekkürler.
Bu forum bir harika......
Lucmat