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
Fikir
tamam erkekler ve kızlar
Sadece bir CUF (Yaygın olarak kullanılan işlevler) oluşturma fikriyle oynuyordum - tüm okuduklarımdan bir EA içinden komut dosyalarını çağıramazsınız.
Buna rağmen - bir geçici çözüm düşünüyorum çünkü her seferinde tekerleği yeniden tasarlamak zorunda kalmaktan hoşlanmıyorum çünkü işlerin bu şekilde daha iyi yürümesini sağlayacağından eminim.
Herkesin bildiği gibi komut dosyaları, orada bir şey yapın, ardından kısayol tuşlarınıza basmadığınız sürece bir daha asla yüklenmemek üzere boşaltın.
Bu, tüm EA'larda gördüğüm büyük bir sorun, devam etmeden önce bir süre koşulu veya bazı kaba "uyku" koşullarının geçmesini beklerken sıkışıp kalmış gibi görünüyorlar. Bu, son derece değişken koşullarda birkaç saniye içinde bir servet kazanabileceğiniz büyük bir başarısızlık olan, bir saniye içinde iptal etmeyi ve satmayı pek olası kılmaz.
Çözüm? Global değişkenler üzerinde çalışan bir CUFF göstergesi yapın? Bunu deneyen var mı? Gösterge her keneyi çevirir , böylece mükemmeldir.
Birden çok gösterge ve çubuk koşulu karşılandığında sesli veya e-posta uyarıları gönderecek bir uyarı nasıl kodlanır?
merhaba,
bir acemi olarak, yerleşik metastock işlevinin: ref() ve stochmomentum()'un metatrader'daki bazı işlevler tarafından uygulanıp uygulanmadığını sormak istiyorum.
teşekkürler
Darian, yukarıdaki küresel örneğime bakın. e-posta gönderen/ıslık çalan/istediğinizi yapan bir komut dosyası bulun ve onu kodlayın. Hepsinin tam olarak aynı anda çalışmayacağını düşünmeniz gerekeceğini unutmayın, bu nedenle değişkenleri 0'a sıfırlamadan önce birkaç saniye/dakika gecikme yapmanız gerekecek.
Küresel ile
Bunun gibi bir Göstergeye GlobalVarible ekleyebilir miyim?
if ( trend[2]0 && Volume[0]>1 && !UpTrendAlert)
{
GlobalVariableSet("trend"+Symbol(),1);
// Print("UP" + GlobalVariableGet("trend"+Symbol()));
Mesaj = " Satın Al "+Symbol()+" M"+Period()+": SATIN AL sinyali";
if ( AlertMode>0 ) Alert (Mesaj);
UpTrendAlert=true; DownTrendAlert=yanlış;
daha sonra bir EA'da GlobalVariable'ı arayın
int init() {
GlobalVariableDel("trend"+Symbol());
trend = GlobalVariableGet("trend"+Symbol());
Satın al = (trend == 1);
Sat = (trend == 2);
tüm yardımlar takdir edildi
Ancak, işe yaramayacak 1 para biriminden fazla ticaret yaparsanız yapabilirsiniz.
Dizilerle ilgili sorun, biraz yardıma ihtiyacınız var!
Merhaba,
Herhangi bir açık siparişin bir kesme noktasından (örneğin, -1000$) daha fazla para kaybedip kaybetmediğini belirleyen bir işlev yapmaya çalışıyorum.
Daha sonra işlevin OrderTicket() ve OrderProfit()'i iki ayrı dizide saklaması ve kesme noktasına ulaşıldığını belirtmek için dönüş (1) ile çıkması beklenir.
Bu dizilerdeki değerleri saklamadan önce, bu siparişin zaten dosyalanmış olup olmadığını görmek için OrderTicket() dizisini kontrol etmelidir.
OrderTicket numarası dizide zaten kayıtlıysa, siparişin EK 1000$ kayıp olup olmadığını belirlemesi gerekir ve eğer öyleyse: OrderProfit() dizisindeki değeri yeni bir değerle değiştirin ve return(1) ile çıkın. YENİ bir kesme noktasına ulaşıldığını belirtir. Sipariş ek 1000$ kaybetmediyse (Kesim olarak adlandırılır), o zaman hiçbir siparişin ek 1000$ kaybetmediğini belirtmek için (0) döndürmelidir.
Sanırım hemen hemen çalışıyor (emin değilim??), Ama nedense dizi, meşru değerlerle birlikte birçok '0' değeriyle doluyor. Dizinin çıktısı aşağıdaki gibidir:
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 431 ResumeArrayPrices[k] = -3042
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 425 ResumeArrayPrices[k] = -3042
ResumeArrayTickets[k] = 386 ResumeArrayPrices[k] = -1008
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 371 ResumeArrayPrices[k] = -12933
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 320 ResumeArrayPrices[k] = -6057
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 249 ResumeArrayPrices[k] = -5076
ResumeArrayTickets[k] = 241 ResumeArrayPrices[k] = -1017
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 230 ResumeArrayPrices[k] = -13122
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
ResumeArrayTickets[k] = 186 ResumeArrayPrices[k] = -4068
ResumeArrayTickets[k] = 128 ResumeArrayPrices[k] = -1008
ResumeArrayTickets[k] = 0 ResumeArrayPrices[k] = 0
[/code]
The following is my actual code:
[code]
int CheckForResume()
{
ResumeCheck = TimeLocal()+(PERIOD_M1*60)*5;
}
int arraycount1 =1;
int arraycount2 =1;
bool found = false;
int k;
for (int i = 0; i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
if (OrderProfit()< Cutoff)
{
for (k=0; k<ArraySize(ResumeArrayTickets); k++)
{
if ((ResumeArrayTickets[k] == OrderTicket()) && ResumeArrayTickets[k] !=0)
{
found = true;
if (ResumeArrayPrices[k] + Cutoff < OrderProfit())
{
return (0);
}
else
{
Print ("ELSE");
arraycount1 = ArrayResize(ResumeArrayTickets,ArraySize(ResumeArrayTickets) + 1);
arraycount2 = ArrayResize(ResumeArrayPrices,ArraySize(ResumeArrayPrices) + 1);
ResumeArrayTickets[k] = OrderTicket();
ResumeArrayPrices[k] = OrderProfit();
return (1);
}
}
}
if (found == false)
{
arraycount1 = ArrayResize(ResumeArrayTickets,ArraySize(ResumeArrayTickets) + 1)'
arraycount2 = ArrayResize(ResumeArrayPrices,ArraySize(ResumeArrayPrices) + 1);
ResumeArrayTickets[k] = OrderTicket();
ResumeArrayPrices[k] = OrderProfit();
return (1);
}
}
}
return (0);
}
}
Barda bir kez EA'yı yenileme
Merhaba, bir EA'yı ilk başlatıldığındaki gibi tepki verecek şekilde yenilemenin bir yolu var mı? (Yeniden başlatma gibi) Bir kez Bar'da yapılması gerekir. Örneğin, her 30 dakikada bir.
RefreshRates() ve WindowRedraw() bunu düzgün yapmaz.
Ayrıca birkaç değişkeni de korumak ve verileri kaybetmemek istiyorum.
Bunu yapmanın bir yolu var mı?
Bunu bir gösterge için de yapabilmek isterim.
Çok teşekkürler.
Programlama Yardımı
Hepinize merhaba,
Grafiğin zamanına göre para biriminin gücünü göstermek için bir para birimi gücü ölçeri değiştirmeye çalışıyorum. Şu anda kullanılan kod şudur:
aLow = MarketInfo(mySymbol,MODE_LOW); // set a low today
aBid = MarketInfo(mySymbol,MODE_BID); // set a last bid
aAsk = MarketInfo(mySymbol,MODE_ASK);MODE_HIGH ve MODE_LOW'un mevcut günlerin en yüksek ve en düşük seviyesini aldığını anlıyorum. Bunun yerine mevcut zaman çerçevesinin en yüksek ve en düşük değerlerini nasıl alabilirim?
Teşekkürler!
Not Ben bir programcı değilim, bu yüzden lütfen küçük kelimeler kullanın :)
iHigh ve iLow işlevleri için yardım kılavuzuna bakın.
iyi şanslar
Lüks