Nasıl kodlanır? - sayfa 318

 
mladen:
dasio Mevcut günün tüm saatlerinde zaten döngü yapıyor. iClose() ve iOpen() öğelerini 1 saatten farklı bir zaman çerçevesinden gelen bir çağrı örneği olarak yerleştirdim. Geçerli günden farklı bir güne erişmek istiyorsanız, o zaman datetime startTime = iTime ( NULL , PERIOD_D1 , 0 ); Toplanan verileri istediğiniz herhangi bir güne ayırın

Teşekkür ederim.

Belki de çalışmalıyım.

00:00 mum - 01:00 - 02:00 vb. için ayrı hesaplamayı nasıl yapacağımı anlamıyorum.

Afedersiniz

 

Sinyal Sorunları

Mladen

Teşekkürler, yakından baktım....Hala kodu deniyorum. Bittiğinde size haber vereceğim.

 

dasio

Bu kısım

int i=iBarShift(NULL,PERIOD_H1,startTime);

i'yi belirtilen gündeki ilk saatlik mumun kaymasına ayarlar (bu nedenle datetime startTime = iTime ( NULL , PERIOD_D1 , 0 ); eklendi - günün başlangıç saatini bulmak için) bundan sonra döngüye girecek güne kadar her 1 saatlik çubuk değerleri aynı kalır (örneğin Cuma günü 24 kez değil, komisyoncunuza bağlı olarak 22 veya 23 kez döngüye girer)

Biraz farklı yapılması gereken bir dizi hissetmeniz gerekiyorsa, şimdi bana izin verin, bu senin fikrindi)

dasio:
Teşekkür ederim.

Belki de çalışmalıyım.

00:00 mum - 01:00 - 02:00 vb. için ayrı hesaplamayı nasıl yapacağımı anlamıyorum.

Afedersiniz
 

Bir Expert nasıl durdurulur?

Merhaba kodlayıcılar,

Bir Uzmanın kazanan bir ticaretten sonra durması için bazı ekstra kodlama satırları nasıl kodlanır?

Pipler çantada, sonra Expert'i durdurun...

Çok teşekkürler

Tomcat98

 
mladen:
dasio

Bu kısım

int i=iBarShift(NULL,PERIOD_H1,startTime);

i'yi belirtilen gündeki ilk saatlik mumun kaymasına ayarlar (bu nedenle datetime startTime = iTime ( NULL , PERIOD_D1 , 0 ); eklendi - günün başlangıç saatini bulmak için) bundan sonra döngüye girecek güne kadar her 1 saatlik çubuk değerleri aynı kalır (örneğin Cuma günü 24 kez değil, komisyoncunuza bağlı olarak 22 veya 23 kez döngüye girer)

Biraz farklı yapılması gereken bir dizi hissetmeniz gerekiyorsa, şimdi bana izin verin, bu senin fikrindi)

Teşekkür ederim,

biraz daha anlıyorum

Ancak buna ihtiyacım var mesela.

Değişkenlerle şöyle bir ilişkilendirmeliyim:

(mum 00:00 ; Değişken = Kapat+Yüksek

mum 01:00 ; Değişken1 = Kapat+Aç

mum 02:00 ; Değişken2 = yüksek+düşük;

Ve böylece günün tüm saat mumu için.

Böylece değişkenler ne kadar çift olarak tanımlanır.

Ondan sonra değişkenle biraz matematik hesaplaması yapmam ve sonucu bir arabellekle ilişkilendirmem gerekiyor (bu bir sorun değil)

Benim için sorun değişken ilişkilendirmedir ....

 

Başka bir problem...Programlamaya çalışıyorum ve bazen (sadecesimetimes?eheh) yardıma ihtiyacım var.

İki bekleyen emir veren bir ea'm varsa, bekleyen bir emir açıldığında diğer bekleyen emrin silinmesini istersem nasıl kodlayabilirim?

Teşekkür ederim

 

2 döngü kullanmanız gerekir:

İlk olarak, bekleyen emirlerden bazılarının "normal" bir emir haline gelip gelmediğini öğrenmek için emirleri saymanız gerekir (böylece OP_BUY veya OP_SELL türlerine sahip düzenli bir emir sayımı yapmanız ve isterseniz geri kalanını saymanız gerekir). siparişler de).

Açılmış emirler varsa, tekrar döngüye girip OP_BUY veya OP_SELL tipi emir olmayan tüm emirleri silmeniz gerekir.

Kod şöyle bir şey olabilir:

int opened =0;

int pending =0;

for(int i=OrdersTotal()-1; i>=0; i--)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol() !=Symbol()) continue;

if(OrderMagicNumber()!=MagicNumber) continue;

if(OrderType()==OP_BUY || OrderType()==OP_SELL)

opened++;

else pending++;

}

if (opened>0 && pending>0)

{

for(i=OrdersTotal()-1; i>=0; i--)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol() !=Symbol()) continue;

if(OrderMagicNumber()!=MagicNumber) continue;

if(OrderType()!=OP_BUY && OrderType()!=OP_SELL)

OrderDelete(OrderTicket());

}

}
dasio:
Başka bir problem...Programlamaya çalışıyorum ve bazen (sadecesimetimes?eheh) yardıma ihtiyacım var.

İki bekleyen emir veren bir ea'm varsa, bekleyen bir emir açıldığında diğer bekleyen emrin silinmesini istersem nasıl kodlayabilirim?

Teşekkür ederim
 

Yalnızca tüm satış veya tüm satın alma pozisyonlarını kapatın (hedef kâra ulaşıldığında)

Herkese Merhaba .. FX ve EA'da yeniyim. Hedefe ulaşıldığında "tüm satışları kapat" veya "tüm alımları kapat" için bir EA bulmaya çalıştım ama bulamadım. "HIT HEDEF veya KÂR" olmadan yalnızca tüm satışları veya tüm alımları kapattım. Birisi aşağıdaki özelliklere sahip 1 EA oluşturmama yardımcı olabilir mi: -

1) Kâr X hedefine ulaşırsa tüm satışları kapatın.

2) Kâr X hedefine ulaşırsa tüm alımları kapatın.

3)Sondaki durdurmayı dahil edin (Mümkünse, sorun değilse sorun değil)

4) Alımların hepsini kapatıyorsa hisse senedi veya marj seviyesi %X'in altındaysa kapatmayın veya tüm satışları kapatın (mümkünse, mümkün değilse sorun değil)

Not:

4'ü kodlamak oldukça zorsa, tek bir EA'da sadece 1,2 ve 3'ü kodlayın.

4 ve 3 zor ise, tek EA'da sadece 1 ve 2 olmaz

Hala zorsa, sadece 1 ve 2'yi ayrı ayrı oluşturun.

Birisi bana yukarıdakileri sağlayabilirse gerçekten minnettar olurum.

Şimdiden teşekkürler

 
pipsmonitor:
Herkese Merhaba .. FX ve EA'da yeniyim. Hedefe ulaşıldığında "tüm satışları kapat" veya "tüm alımları kapat" için bir EA bulmaya çalıştım ama bulamadım. "HIT HEDEF veya KÂR" olmadan yalnızca tüm satışları veya tüm alımları kapattım. Birisi aşağıdaki özelliklere sahip 1 EA oluşturmama yardımcı olabilir mi: -

1) Kâr X hedefine ulaşırsa tüm satışları kapatın.

2) Kâr X hedefine ulaşırsa tüm alımları kapatın.

3)Sondaki durdurmayı dahil edin (Mümkünse, sorun değilse sorun değil)

4) Alımların hepsini kapatıyorsa hisse senedi veya marj seviyesi %X'in altındaysa kapatmayın veya tüm satışları kapatın (mümkünse, mümkün değilse sorun değil)

Not:

4'ü kodlamak oldukça zorsa, tek bir EA'da sadece 1,2 ve 3'ü kodlayın.

4 ve 3 zor ise, tek EA'da sadece 1 ve 2 olmaz

Hala zorsa, sadece 1 ve 2'yi ayrı ayrı oluşturun.

Birisi bana yukarıdakileri sağlayabilirse gerçekten minnettar olurum.

Şimdiden teşekkürler

Merhaba Pipsmonitor,

Belki burada bu sayfada bir şeyler buldum https://www.mql5.com/en/forum/181179 ayrıca forum başlık çubuğunda bir gözlük araması yaptı, karla kapatıldı kullanılan bazılarını orada buldunuz, kullanabilirsiniz, ayrıca deneyebilirsiniz takip eden Eas'ı arayın, bir Ema'nın sonunu öğrenin ve BBve Ea'yı takip etmeyi bırakın.

 

Merhaba,

Bu iki kodu birleştirmeye çalışıyorum ama bununla ilgili bir sorunum var.

Bekleyen bir emir dolduğunda diğerinin iptal edilmesi gerektiğine ihtiyacım var.

ilgisizliğiniz için teşekkür ederim

int opened =0;

int pending =0;

for(int i=OrdersTotal()-1; i>=0; i--)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol() !=Symbol()) continue;

if(OrderMagicNumber()!=Magic) continue;

if(OrderType()==OP_BUY || OrderType()==OP_SELL)

opened++;

else pending++;

}

if (opened>0 && pending>0)

{

for(i=OrdersTotal()-1; i>=0; i--)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol() !=Symbol()) continue;

if(OrderMagicNumber()!=Magic) continue;

if(OrderType()!=OP_BUY && OrderType()!=OP_SELL)

OrderDelete(OrderTicket());

}

} [/PHP]

[PHP] extern int Magic = 68415;

extern int Orario_Inizio = 0;

extern int Orario_Fine = 6;

extern int Buffer = 0;

extern double Lotti = 0.1;

extern int TakeProfit = 10;

extern int StopLoss = 50;

double Massimo;

double Minimo;

int BarCount;

int BarStart;

int BarShift;

double MinLot;

double LotSize;

int i;

int ticket;

string Status;

string BuyStatus1;

string SellStatus1;

double Range;

string CommentoRange;

double pipMultiplier = 1;

int init()

{

}

int start()

{

if (Digits==3 || Digits==5)

{pipMultiplier = 10;}

else {pipMultiplier = 1; }

double TakeProfit1 = TakeProfit*Point*pipMultiplier;

double StopLoss1 = StopLoss*Point*pipMultiplier;

double Buffer1 = Buffer*Point*pipMultiplier;

double StopLossPrice = NormalizeDouble(StopLoss1,Digits);

double TakeProfitPrice = NormalizeDouble(TakeProfit1,Digits);

double BufferPrice = NormalizeDouble(Buffer1,Digits);

//CALCOLA LE BARRE DEL RANGE

if(Orario_Inizio>Orario_Fine)

{

BarCount=24+Orario_Fine-Orario_Inizio;

}

if(Orario_Inizio<Orario_Fine)

{

BarCount=Orario_Fine-Orario_Inizio;

}

//CALCOLA IL MASSIMO E IL MINIMO DEL RANGE

if(Hour()>=Orario_Fine)

{

BarStart=Hour()-Orario_Fine;

BarShift=BarStart+BarCount;

Minimo=iLow(NULL,PERIOD_H1,BarStart);

Massimo=0;

for(i=BarStart;i<=BarShift;i++)

{

Massimo=MathMax(Massimo,iHigh(NULL,PERIOD_H1,i));

Minimo=MathMin(Minimo,iLow(NULL,PERIOD_H1,i));

Range=(Massimo-Minimo)/Point;

}

}

else

{

Massimo=0;

Minimo=0;

return(0);

}

//CONTROLLA SE E' L'ORARIO PER POTER TRADARE

if(Hour()==Orario_Fine && OrdersTotal()<2)

{

//CONTROLLA SE IL MASSIMO E' STATO ROTTO. CONDIZIONE BUY

double OpenPriceBuy = NormalizeDouble((Massimo+BufferPrice),Digits);

ticket=OrderSend(Symbol(),OP_BUYSTOP,Lotti,OpenPriceBuy,0,OpenPriceBuy-StopLossPrice,OpenPriceBuy+TakeProfitPrice,NULL,Magic,0,Blue);

//CONTROLLA SE IL MINIMO E' STATO ROTTO. CONDIZIONE SELL

double OpenPriceSell = NormalizeDouble((Minimo-BufferPrice),Digits);

ticket=OrderSend(Symbol(),OP_SELLSTOP,Lotti,OpenPriceSell,0,OpenPriceSell+StopLossPrice,OpenPriceSell-TakeProfitPrice,NULL,Magic,0,Red);

if (ticket != -1)

return(0);

}

}