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
Jo
Bunun gibi bir şey:
Merhaba,
Bir göstergede bir uyarıyı nasıl kodlayabilirim?
Örneğin, MACD[0]>MACD[1] olduğunda nasıl uyarı verilir?
Yardım için teşekkürler.
JoJo
Bunun gibi bir şey:
Teşekkürler Mladen, ama nerede?
mesajlarım vardı:
Kırmızı -If_function tanımlanmadı
Red-Alert_Semicolon bekleniyor
-------------------------------------------------- -------------------------------------------------- --------------
#özellik göstergesi_separate_window
#özellik göstergesi_tamponları 2
#özellik göstergesi_color1 Gümüş
#özellik göstergesi_renk2 Kırmızı
#özellik göstergesi_width1 2
//---- gösterge parametreleri
harici int FastEMA=12;
harici int YavaşEMA=26;
harici int SignalSMA=9;
//---- gösterge tamponları
çift MacdBuffer[];
çift SignalBuffer[];
//+------------------------------------------- -------------------+
//| Özel gösterge başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//---- çizim ayarları
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
GöstergeDigits(Rakam+1);
//---- gösterge arabellek eşlemesi
SetIndexBuffer(0,MacdBuffer);
SetIndexBuffer(1,SignalBuffer);
//---- DataWindow ve gösterge alt pencere etiketi için isim
GöstergeShortName("MACD("+HızlıEMA+","+YavaşEMA+","+SinyalSMA+")");
SetIndexLabel(0,"MACD");
SetIndexLabel(1,"Sinyal");
//---- başlatma tamamlandı
dönüş(0);
}
//+------------------------------------------- -------------------+
//| Hareketli Ortalamalar Yakınsama/Iraksaklık |
//+------------------------------------------- -------------------+
int başlangıç()
{
int limiti;
int counted_bars=IndicatorCounted();
//---- son sayılan çubuk yeniden sayılacak
if(counted_bars>0) counted_bars--;
limit=Barlar-sayılan_barlar;
//---- 1. tamponda sayılan macd
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,HızlıEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- 2. tamponda sayılan sinyal hattı
for(i=0; i<limit; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Barlar,SignalSMA,0,MODE_SMA,i);
//---- tamamlamak
dönüş(0);
}
//+--------------------------------------------
Kodunuzdaki son dönüşten hemen önce (bu şekilde yalnızca geri kalan tüm işlemler yapıldığında yürütülmesini sağlarsınız)
Teşekkürler Mladen, ama nerede?
mesajlarım vardı:
Kırmızı -If_function tanımlanmadı
Red-Alert_Semicolon bekleniyor
-------------------------------------------------- -------------------------------------------------- --------------
#özellik göstergesi_separate_window
#özellik göstergesi_tamponları 2
#özellik göstergesi_color1 Gümüş
#özellik göstergesi_renk2 Kırmızı
#özellik göstergesi_width1 2
//---- gösterge parametreleri
harici int FastEMA=12;
harici int YavaşEMA=26;
harici int SignalSMA=9;
//---- gösterge tamponları
çift MacdBuffer[];
çift SignalBuffer[];
//+------------------------------------------- -------------------+
//| Özel gösterge başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//---- çizim ayarları
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
GöstergeDigits(Rakam+1);
//---- gösterge arabellek eşlemesi
SetIndexBuffer(0,MacdBuffer);
SetIndexBuffer(1,SignalBuffer);
//---- DataWindow ve gösterge alt pencere etiketi için isim
GöstergeShortName("MACD("+HızlıEMA+","+YavaşEMA+","+SinyalSMA+")");
SetIndexLabel(0,"MACD");
SetIndexLabel(1,"Sinyal");
//---- başlatma tamamlandı
dönüş(0);
}
//+------------------------------------------- -------------------+
//| Hareketli Ortalamalar Yakınsama/Iraksaklık |
//+------------------------------------------- -------------------+
int başlangıç()
{
int limiti;
int counted_bars=IndicatorCounted();
//---- son sayılan çubuk yeniden sayılacak
if(counted_bars>0) counted_bars--;
limit=Barlar-sayılan_barlar;
//---- 1. tamponda sayılan macd
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,HızlıEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- 2. tamponda sayılan sinyal hattı
for(i=0; i<limit; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Barlar,SignalSMA,0,MODE_SMA,i);
//---- tamamlamak
dönüş(0);
}
//+--------------------------------------------Lütfen zaman çerçevesini "0" olarak kullanırken Sıfır bölme hatasını düzeltin
pivot_crazy.mq4 Birisi lütfen zaman çerçevesini "0" olarak kullanırken sıfır bölme hatasını düzeltebilir mi?
Teşekkürler.
Denemek. şimdi düzeltildi
pivot_crazy.mq4 Birisi lütfen zaman çerçevesini "0" olarak kullanırken sıfır bölme hatasını düzeltebilir mi Teşekkürler.
Teşekkürler mladen bir cazibe gibi çalışıyor
Denemek. şimdi düzeltildi
teşekkür ederim mladen bir cazibe gibi çalışıyor
bu konuda yardıma ihtiyacım var, martingale işlevi var ama düzgün çalışmıyor, örneğin bir kayıp martingale işlevinde kapatılan bir pozisyon, bir kayıpta kapatılan son pozisyonun lotlarını çarpmalıysa, ancak orada martingale yapan kodda bir hata var burada düzgün bir şekilde çalışmak için ea universalmacrossea.mq4
Bir kayıptan sonra yeni emir açmanın bu yolu martingale değildir + martingale açık pozisyonlarla çalışır
bu konuda yardıma ihtiyacım var, martingale işlevi var ama düzgün çalışmıyor, örneğin bir kayıp martingale işlevinde kapatılan bir pozisyon, bir kayıpta kapatılan son pozisyonun lotlarını çarpmalıysa, ancak orada martingale yapan kodda bir hata var burada düzgün bir şekilde çalışmak için ea universalmacrossea.mq4
Her işlemde paramın %5'i ile işlem yapmak istediğimde lot miktarımı nasıl hesaplayabilirim?
güneş ışığı,
Bu işlevi kullanmayı deneyin:
{
RefreshRates();
double lots = 0;
double MinLots = NormalizeDouble(MarketInfo(symbol,MODE_MINLOT) ,2);
double MaxLots = NormalizeDouble(MarketInfo(symbol,MODE_MAXLOT) ,2);
double LotStep = NormalizeDouble(MarketInfo(symbol,MODE_LOTSTEP),2);
int LotDigit = 2;
if(MarketInfo(symbol,MODE_DIGITS)==3 || MarketInfo(symbol,MODE_DIGITS)==5) stopLossDistance *= 10.0;
//
//
//
//
//
if (LotStep==1) LotDigit=0;
if (LotStep==0.1) LotDigit=1;
if (LotStep==0.01) LotDigit=2;
if (Risk>0)
{
if (AccountBalance()>AccountFreeMargin())
lots = NormalizeDouble(AccountFreeMargin()*(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
else lots = NormalizeDouble(AccountBalance() *(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
}
//
//
//
//
//
lots = NormalizeDouble(NormalizeDouble(lots/LotStep,0)*LotStep,LotDigit);
lots = MathMax(MathMin(lots,MaxLots),MinLots);
return(lots);
}Her işlemde paramın %5'i ile işlem yapmak istediğimde lot miktarımı nasıl hesaplayabilirim?