Sormak! - sayfa 134

 
bakhul:
Buradaki biri, 0 seviyesini geçtiğinde veya renk değiştirdiğinde bu filtreye uyarı eklememe yardım edebilir mi? bana yardım etmek isteyene teşekkür ederim...

Belki buraya gönderme şansınız daha yüksek olur: https://www.mql5.com/en/forum

 

Şu anda EA'dan Satın Alma ve Satış Emirlerini Açan Kaç Kişi

Birinin bu soruya zaten cevap vermiş olmasını umarak 134 sayfadan geçtim. Ama şanssızdım..

Her tür çapraz geçişi, pivot noktasını ve ATR aralığını oluşturup ince ayar yaptıktan ve sahip olduğum yüzlerce farklı göstergeyle tasavvur edebileceğim stratejiyi ortaya çıkardıktan sonra. Tam gelişmiş otomatikleştirilmiş bir EA'nın kodlamanız gereken tonlarca değişkene ihtiyacı olduğunu fark ettim. Bunun yerine, kullanıcı destekli uzman danışmanlar oluşturmaya başlıyorum. Peki eldeki sorulara...

EA'nın şu anda Piyasada kaç tane açık Satın Alma ve kaç tane açık satış emri açtığını saymak için hangi kod kullanılabilir.

Toplamda kaç açık sipariş olduğunu saymasını istemiyorum çünkü EA'nın verdiği mevcut siparişleri dengelemek için aynı hesapta siparişler de vereceğim.

Sonunda, riskten korunma amacıyla alım ve satım emirlerinin oranını değiştirecek filtreler kurmak istiyorum.

 

biraz yardım lütfen...

Herkese selam,

Bunu ilk başta yeni bir başlık olarak gönderdim, ancak başka bir programlama başlığına taşındı (BTW'nin hareketine bir itirazım yok) ve şimdi o başlıktaki posterlerin miktarı nedeniyle kaybolmuş gibi görünüyor.

Belki burada biri bana yardım edebilir?

Yaklaşık 7 günlük deneme yanılma, kesme ve yapıştırma ve saatlerce araştırmadan sonra ilk EA'mı neredeyse bitirdim....

Birisi lütfen bana bir EA'ya nasıl çıkış veya durdurma işlevi vereceğimi söyleyebilir mi?

EA'nın mevcut ve bekleyen tüm alım satımları silmesini ve özsermayede 10.000'e ulaştıktan sonra çıkmasını istiyorum. Şimdiye kadar kodun o kısmı aşağıdadır:

bool StopTrade;

int total = OrdersTotal(), cnt = 0, ExitAtEquity=10000;

for (cnt = total ; cnt >=0 ; cnt-- )

{

OrderSelect(0,SELECT_BY_POS,MODE_TRADES);

if (AccountEquity ()== ExitAtEquity)//(TimeCurrent()- OrderOpenTime() >= ActiveMinutes*60 )

{if(OrderType()==OP_BUY)

OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);

if(OrderType()==OP_SELL)

OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);

if(OrderType()>OP_SELL)

OrderDelete(OrderTicket());

StopTrade=true;}

}

if (dclose==dopen && OrdersTotal() < ConcurrentTrades && StopTrade != true)

Gördüğünüz gibi, EA Equity'ye bakar ve ardından StopTrade değişkeninin bool değerini true olarak ayarlar. EA daha sonra komutu kabul eder ve bir döngü için StopTrade != true altında hiçbir şey işlemez, ancak daha sonra StopTrade'in bool değeri sıfırlanır ve sanırım işlemler devam eder.

İlk olarak, bunu yapmam gereken şeyi, yaptığım şekilde yapmasını sağlamam için yine de var mı?

İkincisi, EA'ya bırakmasını söylemek için kullanabileceğim bir işlev var mı?

Tüm yardımlar büyük beğeni topluyor.

not.

cutzpr - How Many Currently open Buy, and Sell Orders from EA

Kodumun bir kısmının ihtiyacınız olan konuda size yardımcı olabileceğini düşünüyorum.

 

Pekala, tüm açık emirleri atacak bir döngünün bir başlangıç olacağını düşünmüştüm, ancak EA'ya ne söyleyeceğimi bilemedim, böylece sadece EA tarafından verilen Emirlere bakacak ve benim verdiğim emirleri göz ardı edecek. manuel olarak yerleştirin. Teşekkürler.

 

sihirli sayı

cutzpr - sihirli bir sayı kullanmanız ve ardından aşağıdakine benzer bir şey kullanmanız gerekir:

for ( cnt = toplam ; cnt >= 0 ; cnt -- )

{

OrderSelect(0,SELECT_BY_POS,MODES_TRADES);

if (OrderMagicNumber()== yourmagicnumber )

{if( OrderType ()== OP_BUY )

 

Bu koda bir göz atarak, aşağıdaki kod parçasını oluşturdum. Doğru kodlanıp kodlanmadığından emin değilim. kurdum

int MaxLong=5,MaxShort=5;

harici çift Magic=10000;

harici int MaxOpenOrders=10;

böyle..

if (b<=MaxUzun)

{Ticaret

}

if (s<=MaxKısa)

{Ticaret

}

Ancak EA hala maksimum alım ve maksimum satış gönderiyor. Her birinden kaç tane sipariş olduğunu saymak ve kendisini MaxLong ve Short ile sınırlamak yerine. Kodda bir yanlışlık olması gerektiğini biliyorum ama göremiyorum.

for (int cnt = total ; cnt >=0 ; cnt-- )

{

OrderSelect(0,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber()==Magic)

{if(OrderType()==OP_BUY)

{

b++; // add order to Long Quantity

if(TP != 0)

{

if(b!= 0)

{

if(Bid >= ((OrderOpenPrice()+TP*Poin)+Spread))

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); // Long position closed.

CMT=OrderCloseTime();

b--; // Long Order closed. Remove one order from total Longs

return(0);

}

}

}

}

if (OrderMagicNumber()==Magic)

{if(OrderType()==OP_SELL)

s++; // Add one to Short order Quantity

if (TP != 0)

{

if(s!= 0)

{

if(Ask <= ((OrderOpenPrice()-TP*Poin)+Spread))

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); // Short position closed.

CMT=OrderCloseTime();

s--; // Short Order Closed. Remove one order from total shorts

return(0);

}

}

}

}

}
 
cutzpr:
Bu koda bir göz atarak, aşağıdaki kod parçasını oluşturdum. Doğru kodlanıp kodlanmadığından emin değilim. kurdum

int MaxLong=5,MaxShort=5;

harici çift Magic=10000;

harici int MaxOpenOrders=10;

böyle..

if (b<=MaxUzun)

{Ticaret

}

if (s<=MaxKısa)

{Ticaret

}

Ancak EA hala maksimum alım ve maksimum satış gönderiyor. Her birinden kaç tane sipariş olduğunu saymak ve kendisini MaxLong ve Short ile sınırlamak yerine. Kodda bir yanlışlık olması gerektiğini biliyorum ama göremiyorum.

Bence sen işleri çok karmaşıklaştırıyorsun. Büyük bir işlev yerine birkaç kısa kod parçası kullanmayı deneyin. Bu size biraz ipucu vermelidir:

int totalOrders(int type)

{

int totalNumber = 0;

for (int cnt = total ; cnt >=0 ; cnt -- )

{

OrderSelect( cnt ,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderType() == type) totalNumber++;

}

return(totalNumber);

}

[/CODE]

AND HERE IS EXAMPLE HOW YOU CAN USE IT

[CODE]

int totalBuy = totalOrders(OP_BUY);

int totalSell = totalOrders(OP_SELL);

if( (totalBuy + totalSell) < MaxOpenOrders)/*TOTAL NUMBER OF ORDERS WASN'T REACHED*/

{

if(totalBuy <= MaxLongOrders)

{

//OPENING LONG IS PERMITED

}

if(totalSell <= MaxShortOrders)

{

//OPENING SHORT IS PERMITED

}

}

 

[ASK] Göstergesi "SilverTrend_Signal"

Forex ve mql4 programlamada yeni başlayan biriyim. SilverTrend_Signal (buraya ekliyorum) bir göstergem var ve

bu göstergeden EA yapmak istiyorum ama bu göstergeyle ilgili bir sorunum var, sinyal değişebilir

Aynı çubukta, grafikte yükselen trend sinyali oku gibi görünür, sonra kaybolabilir ve belki

aynı çubuktaki düşüş trendi sinyal okuna değiştirin. Birisi bu sorunu çözmeme yardım edebilir mi?

Bu göstergeyi M1 zaman diliminde ve AB'de kullanıyorum.

Çok teşekkürler.

(Üzgünüm, ingilizcem yeterince iyi değil)

Dosyalar:
 

Benim kişisel görüşüm, sinyaller için yeniden çizilen göstergeleri kullanmaktan uzak durmanız gerektiğidir. Özellikle M1 grafiğinde. Sinyaller çok sık değişecek. Sadece stabil olmayan sinyaller ve sorun istiyorsunuz. Geçmiş tarih iyi görünüyor çünkü geçmiş.

 
willya:
Forex ve mql4 programlamada acemiyim. SilverTrend_Signal (buraya ekliyorum) bir göstergem var ve

bu göstergeden EA yapmak istiyorum ama bu göstergeyle ilgili bir sorunum var, sinyal değişebilir

Aynı çubukta, grafikte yükselen trend sinyali oku gibi görünür, sonra kaybolabilir ve belki

aynı çubuktaki düşüş trendi sinyal okuna değiştirin. Birisi bu sorunu çözmeme yardım edebilir mi?

Bu göstergeyi M1 zaman diliminde ve AB'de kullanıyorum.

Çok teşekkürler.

(Üzgünüm, ingilizcem yeterince iyi değil)

Bunun nasıl yeniden boyandığından emin değilim, ancak SADECE mevcut çubukta yapıyorsa, o zaman bardaki sinyali kullanın (onaylandı) yakın iyi olacaktır.

Mevcut çubuktan daha fazlasını yeniden boyarsa, sinyalini bir EA için kullanmayı unutabilirsiniz.

FerruFx