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
dasio
Bunun gibi bir şey deneyin:
#property indicator_buffers 2
#property indicator_color1 OrangeRed
#property indicator_color2 Silver
#property indicator_width1 2
extern int RsiPeriod = 50;
extern int RsiPrice = PRICE_CLOSE;
double work[];
double avg[];
//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//
int init()
{
SetIndexBuffer(0,work);
SetIndexBuffer(1,avg);
return(0);
}
int start()
{
int i,countedBars = IndicatorCounted();
if (countedBars<0) return(-1);
if (countedBars>0) countedBars--;
int limit = MathMin(Bars-countedBars,Bars-1);
for(i=limit; i>=0; i--)
{
work = iRSI(NULL,0,RsiPeriod,RsiPrice,i);
int y = iBarShift(NULL,PERIOD_D1,Time);
int x = iBarShift(NULL,PERIOD_D1,Time);
if (x!=y)
{
int k = iBarShift(NULL,0,iTime(NULL,PERIOD_D1,y));
double average = work[k];
int c = 1;
for (int j=k-1; j>=i; j--,c++) average += work[j]; average /= c;
for ( j=k ; j>=i; j--) avg[j] = average;
}
}
return(0);
}
Mladen denedim ama başarılı olamadım.
Ekte benim göstergemin bir örneği var. Tek fark hesaplamalarda ama diğeri aynı.
Formülünüzle bütünleştirebilir misiniz? bu yüzden ben de çalışabilirim.
Teşekkür ederim
test1.mq4
Herkese selam. Bir sinyal için bir kod satırı yazmak için hızlı yardım arıyorum.
Sinyal için Step_Indy ve bir EMA çaprazı kullanıyorum. Yapmak istediğim şey, EA'nın ancak her ikisi de birbirinden 10 çubuk uzaklıkta bir sinyal verdiğinde ticarete girmesini sağlamak.
Diyelim ki Adım bir sinyal veriyor, EA'nın MA çaprazı olup olmadığını görmek için 10 çubuk geriye bakmasını istiyorum, evet ise girin. (Sadece MA çapraz akım sinyalinin uzun olup olmadığını kontrol etmesini ve görmesini istemiyorum, 10 bar gibi yakın zamanda olmasını istiyorum)
Herhangi bir yardım için TIA, bunu geçmişte gördüğüm herhangi bir EA'da gördüğümü sanmıyorum.
dasio
Koddan, kodun amacının ne olduğunu göremiyorum. Her neyse, göstergenin "temel" değeri olarak gerçek aralığı kullanmak isteyip istemediğinizi (kodunuzun ilk kısmıdır) veya kodunuzun ikinci bölümünü aşağıdaki gibi kullanmak istiyorsanız, seçebileceğiniz bir kod aşağıdadır. "temel" değer
Mladen denedim ama başarılı olamadım.
Ekte benim göstergemin bir örneği var. Tek fark hesaplamalarda ama diğeri aynı.
Formülünüzle bütünleştirebilir misiniz? bu yüzden ben de çalışabilirim.
Teşekkür ederim
test1.mq4Sinyal Sorunları
Mladen, bir kez daha teşekkür ederim, uyarı artık tekrarlanmıyor, iyi çalışıyor.....ama bir durdurma sinyali vermek istiyorum..... ve aşağıdaki kodu yazdım,al ve sat sinyali çalışıyor ama al stop ve satış durdurma çalışmıyor, aşağıdaki koda bakın:
//-----Alartları Atama----
if(Period()==240){
statik tarihsaat lastAlerted=0;
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
çift RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double şimdiCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
double şimditrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// Ticaret uyarıları
if((adx_h4>=20)&&(di_p_h4>=20)&&(di_p_h4>di_m_h4)&&(ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&(nowtrCCI>0) (lastAlerted!=Zaman[0]))
{
lastAlerted=Zaman[0];
Alert("Buy","\n"," Geçerli saat ",TimeToStr(CurTime()),"\n",Symbol());
}
if((adx_h4>=20)&&(di_m_h4>=20)&&(di_m_h4>di_p_h4)&&(ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(now&trCCItr)&(b&nowCCI<0& (lastAlerted!=Zaman[0]))
{
lastAlerted=Zaman[0];
Alert("Sat",\n","Geçerli saat ",TimeToStr(CurTime()),"\n",Symbol());
}
// Uyarıları durdur
if((adx_h4>=20)&&(di_p_h4>=20)&&(di_p_h4>di_m_h4)&&(ist_mainRSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)&>b4trCCI)&> (di_p_h4>=20)&&(di_p_h4>di_m_h4)&&(ist_main>ist_signal)&&(RSIP10&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)||(adx_h4>=20)&_h(>di_p_&> >di_m_h4)&&(ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI<0&&nowenCCI0&&nowtrCCI>b4trCCI)||(adx_h4>=20)&&(di_p_h4>=20)&&(di_p_h4>di_ms_h&(di_p_h4>di_m_h4>di_m_h4) &&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)&&(lastUyarıldı!=Zaman[0]))
{
lastAlerted=Zaman[0];
Alert("Satın Almayı Durdur",\n","Geçerli saat ",TimeToStr(CurTime()),"\n",Symbol());
}
if((adx_h4>=20)&&(di_m_h4>=20)&&(di_p_h4ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI=20)&&(di_20)h di_p_h4<di_m_h4)&&(ist_mainRSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI=20)&&(di_m_h4>=20)&&(di_p_h4<di_m_hma)&&(di_p_h4<di_m_hma)C&&now(10)&&ist(ist) (nowtrCCI<0&&nowtrCCI=20)&&(di_m_h4>=20)&&(di_p_h4<di_m_h4)&&(ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI0&&nowtrCCI>&b4trCCI) )
{
lastAlerted=Zaman[0];
Alert(" Satışı Durdur",\n","Geçerli saat ",TimeToStr(CurTime()),"\n",Symbol());
}
Şu şekilde deneyin:
{
static datetime lastAlerted=0;
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// alerts
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI >0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Buy Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI <0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Sell Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
}dasio Koddan, kodun amacının ne olduğunu göremiyorum. Her neyse, göstergenin "temel" değeri olarak gerçek aralığı kullanmak isteyip istemediğinizi (kodunuzun ilk kısmıdır) veya kodunuzun ikinci bölümünü aşağıdaki gibi kullanmak istiyorsanız, seçebileceğiniz bir kod aşağıdadır. "temel" değer
teşekkür ederim mladen.
Biliyorum bu şekilde hesap yapmanın bir anlamı yok. Ama her gün yaptığım bir analizi kodlamaya çalışıyorum. ^^
İşin sadece 1/3'ü.
Teşekkür ederim
dasio Koddan, kodun amacının ne olduğunu göremiyorum. Her neyse, göstergenin "temel" değeri olarak gerçek aralığı kullanmak isteyip istemediğinizi (kodunuzun ilk kısmıdır) veya kodunuzun ikinci bölümünü aşağıdaki gibi kullanmak istiyorsanız, seçebileceğiniz bir kod aşağıdadır. "temel" değer
Teşekkür ederim, mükemmel.
Cuma düzeltmesini eklemek mümkün mü?
Teşekkür ederim
Saygılarımızla
Ses
her çubuğun hacmini sorgulamak istiyorum ama nasıl yapacağım hakkında hiçbir fikrim yok mql4 programlamada yeniyim ama öğrenmeye çalışıyorum bu basit programı denedim ama tamamen saçma olabilir, lütfen bana bildirin, ve herhangi bir öneri takdir edilecektir. Aşağıda bir çubuğun hacmini sorgulamak ve sonucu yazdırmak için betiğin başlangıcı verilmiştir, lütfen nerede yanlış yaptığımı bana bildirin !!!! derlemeye çalışmaya devam et, yazan bir hata var (program sonu parantez } bekleniyor.
//--- giriş parametreleri
harici çift TakeProfit = 4;
harici çift StopLoss = 20;
harici çift Lot = 0.1;
harici çift TrailingStop = 30;
dış çift hacimmore = 600;
dış çift hacimsiz = 150;
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int başlangıç()
{
if (Hacim=>hacim daha fazla)
{
Yazdır ("daha fazla cilt");
{
if (Hacim=<hacimsiz)
{
Yazdır ("hacim daha az");
if(Çubuklar<20)
{
Print("20'den küçük çubuklar");
{
//----
//----
dönüş (0);
}
Hacmi görmek istediğiniz çubuk için "endeks"in sayı olduğu Hacim'i kullanın. Metatrader 4'te "Hacim" in her zaman kene hacmi olduğunu unutmayın.
her çubuğun hacmini sorgulamak istiyorum ama nasıl yapacağım hakkında hiçbir fikrim yok mql4 programlamada yeniyim ama öğrenmeye çalışıyorum bu basit programı denedim ama tamamen saçma olabilir, lütfen bana bildirin, ve herhangi bir öneri takdir edilecektir. Aşağıda bir çubuğun hacmini sorgulamak ve sonucu yazdırmak için betiğin başlangıcı verilmiştir, lütfen nerede yanlış yaptığımı bana bildirin !!!! derlemeye çalışmaya devam et, yazan bir hata var (program sonu parantez } bekleniyor.
//--- giriş parametreleri
harici çift TakeProfit = 4;
harici çift StopLoss = 20;
harici çift Lot = 0.1;
harici çift TrailingStop = 30;
dış çift hacimmore = 600;
dış çift hacimsiz = 150;
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int başlangıç()
{
if (Hacim=>hacim daha fazla)
{
Yazdır ("daha fazla cilt");
{
if (Hacim=<hacimsiz)
{
Yazdır ("hacim daha az");
if(Çubuklar<20)
{
Print("20'den küçük çubuklar");
{
//----
//----
dönüş (0);
}Herkese selam. Bir sinyal için bir kod satırı yazmak için hızlı yardım arıyorum.
Sinyal için Step_Indy ve bir EMA çaprazı kullanıyorum. Yapmak istediğim şey, EA'nın ancak her ikisi de birbirinden 10 çubuk uzaklıkta bir sinyal verdiğinde ticarete girmesini sağlamak.
Diyelim ki Adım bir sinyal veriyor, EA'nın MA çaprazı olup olmadığını görmek için 10 çubuk geriye bakmasını istiyorum, evet ise girin. (Sadece MA çapraz akım sinyalinin uzun olup olmadığını kontrol etmesini ve görmesini istemiyorum, 10 bar gibi yakın zamanda olmasını istiyorum)
Herhangi bir yardım için TIA, bunu geçmişte gördüğüm herhangi bir EA'da gördüğümü sanmıyorum.Pekala, birkaç şey denedim ama şu ana kadar hiçbir şey işe yaramadı.
İşte bunu denediğim yollardan biri:
harici int geriye dönük inceleme = 10;
harici int EMA1 = 21;
harici int EMA2 = 55;
int GetEntrySignal()
{
int trendCurr = iCustom(NULL,StepMaTimeFrame,"StepMA_v7",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest );
int trendPrev = iCustom(NULL,StepMaTimeFrame,"StepMA_v7",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest+1);
double TwentyOneEMA = iMA(NULL,0,EMA1,0,MODE_EMA,PRICE_CLOSE,1);
double FiftyFiveEMA = iMA(NULL,0,EMA2,0,MODE_EMA,PRICE_CLOSE,1);
if(YirmiBirEMA > ElliFiveEMA)
{
if (trendCurr>0)
{
for(int i=1; i<=Bars-backback; i++)
{
eğer (trendCurr<0)
dönüş(UZUN);
başka dönüş(YOK);
}
}
}
if(YirmiBirEMA < ElliFiveEMA)
{
eğer (trendCurr<0)
{
for(int i2=1; i2<=Bars-backback; i2++)
{
if (trendCurr>0)
dönüş(KISA);
başka dönüş(YOK);
}
}
}
dönüş(YOK);
}
Herhangi bir fikir takdir edildi, ben de denedim (int i=1; i<=lookback; i++)
...
jayjon plajı,
TrendCurr değerini döngüde değiştirmeden tekrar tekrar test ediyorsunuz (böylece her zaman HİÇBİRİ döndürecektir)
iCustom()'u döngüye sokmayı deneyin ve ardından bu değeri test edin. Bunun gibi bir şey:
{
for(int i=1; i<=lookback; i++)
{
int testValue = iCustom(NULL,StepMaTimeFrame,"StepMA_v7",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest+i);
if (testValue<0) return(LONG);
}
return(NONE);
}
Pekala, birkaç şey denedim ama şu ana kadar hiçbir şey işe yaramadı.
İşte bunu denediğim yollardan biri:
harici int geriye dönük inceleme = 10;
harici int EMA1 = 21;
harici int EMA2 = 55;
int GetEntrySignal()
{
int trendCurr = iCustom(NULL,StepMaTimeFrame,"StepMA_v7",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest);
int trendPrev = iCustom(NULL,StepMaTimeFrame,"StepMA_v7",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest+1);
double TwentyOneEMA = iMA(NULL,0,EMA1,0,MODE_EMA,PRICE_CLOSE,1);
double FiftyFiveEMA = iMA(NULL,0,EMA2,0,MODE_EMA,PRICE_CLOSE,1);
if(YirmiBirEMA > ElliFiveEMA)
{
if (trendCurr>0)
{
for(int i=1; i<=Bars-backback; i++)
{
eğer (trendCurr<0)
dönüş(UZUN);
başka dönüş(YOK);
}
}
}
if(YirmiBirEMA < ElliFiveEMA)
{
eğer (trendCurr<0)
{
for(int i2=1; i2<=Bars-backback; i2++)
{
if (trendCurr>0)
dönüş(KISA);
başka dönüş(YOK);
}
}
}
dönüş(YOK);
}
Herhangi bir fikir takdir edildi