Expertadvisor koduna gösterge kodu nasıl eklenir?

 

yukarıda bahsettiğim gibi stokastik kodlama ile bir tane yapmak istiyorum.

sorun, gösterge kodunun ea'ya nasıl ekleneceğidir?

 
albert_lim83 :

sorun, gösterge kodunun ea'ya nasıl ekleneceğidir?

Belirli sınırlamalarla yapabilirsiniz, ancak iCustom'u kullanmak çok daha kolaydır.

Ama gerçekten istiyorsanız: Bir Gösterge Kodunu Uzman Danışman Koduna Aktarmak. Gösterge Yapısı - MQL4 Makaleleri

 

Stokastik için iCustom gerekli değildir

çift iStochastic ( string sembolü, int zaman çerçevesi, int %Kperiod, int %Dperiod, int yavaşlama, int metodu, int fiyat_alanı, int modu, int shift)
Stokastik osilatörü hesaplar ve değerini döndürür.
parametreler:
sembol - Göstergeyi hesaplamak için verilerinin kullanılması gereken sembol. NULL, geçerli sembol anlamına gelir.
zaman aralığı - Zaman aralığı. Zaman Çerçevesi numaralandırma değerlerinden herhangi biri olabilir. 0, mevcut grafik zaman çerçevesi anlamına gelir.
%Kdönem - %K satır periyodu.
%Ddönem - %D satır periyodu.
yavaşlama - Yavaşlayan değer.
yöntem - MA yöntemi. Hareketli Ortalama yöntemi numaralandırma değerinden herhangi biri olabilir.
fiyat_alanı - Fiyat alanı parametresi. Şu değerlerden biri olabilir: 0 - Düşük/Yüksek veya 1 - Kapat/Kapat.
mod - Gösterge satırı indeksi. Göstergeler satır tanımlayıcıları numaralandırma değerinden herhangi biri olabilir.
vardiya - Gösterge tamponundan alınan değerin indeksi (geçerli periyotlar öncesindeki mevcut çubuğa göre kayma).
Örneklem:
 if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0))
    dönüş(0);
MQL4 İşlevlerinin Alfabetik Dizinini bulmak için birçok kodlama yardımı burada https://www.mql5.com/en/forum/122679

 

ea içine rvi göstergesi eklemeye ne dersiniz?

ayrıca stokastik ekleme yöntemiyle aynı kodu mu kullanıyorsunuz?

 
Belgeleri okuyun
 
albert_lim83 :

ea içine rvi göstergesi eklemeye ne dersiniz?

ayrıca stokastik ekleme yöntemiyle aynı kodu mu kullanıyorsunuz?


iCustom() veya iRVI()

 
albert_lim83 :

ea içine rvi göstergesi eklemeye ne dersiniz?

ayrıca stokastik ekleme yöntemiyle aynı kodu mu kullanıyorsunuz?


  1. iCustom - MQL4 forumunun ayrıntılı açıklaması
 

EA kaçışına RVI göstergesi eklemeye çalışıyorum, ancak başarısızlık ...

gösterir

küresel kapsamda ifadeye izin verilmiyor

fonksiyon tanımı beklenmedik

dengesiz parantezler

bu hata nasıl düzeltilir??

 

işte bu sabah yaptığım kod.

düzeltmeme yardımcı olabilecek var mı??


//+------------------------------------------- -------------------+
int init()
{
//---- gösterge arabellek eşlemesi
SetIndexBuffer(0,Buffer);
SetIndexBuffer(1,SignalBuffer);
//---- gösterge çizgisi
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
//---- çizim ayarları
SetIndexDrawBegin(0,RVIPeriod+3);
SetIndexDrawBegin(1,RVIPeriod+7);
//---- DataWindow ve gösterge alt pencere etiketi için isim
GöstergeShortName("RVI("+RVIPeriod+")");
SetIndexLabel(0,"RVI");
SetIndexLabel(1,"RVIS");
//---- başlatma tamamlandı
dönüş(0);
}
{
çift teklif =MarketInfo(Symbol(),MODE_BID); // Bid değeri için istek
çifte sor =MarketInfo(Symbol(),MODE_ASK); // Ask değeri için istek
çift nokta =MarketInfo(Symbol(),MODE_POINT);//Puan Talebi
dönüş; // start()'tan çık
if(AccountFreeMargin()<100)
Print("Paramız yok. Serbest Marj = ", AccountFreeMargin());
dönüş(0);
}

int başlangıç()
{
{
int i,j,nLimit,nCountedBars;
çift dValueUp,dValueDown,dNum,dDeNum;
//----
if(Bars<=RVIPPeriod+8) return(0);
//----
nCountedBars=IndicatorCounted();
//---- olası hataları kontrol et
if(nCountedBars<0) dönüş(-1);
//---- son sayılan çubuk yeniden sayılacak
nLimit=Barlar-RVIPeriod-4;
if(nCountedBars>RVIPeriod+4)
nLimit=Barlar-nCountedBars;
//---- 1. tamponda sayılan RVI
for(i=0; i<=nLimit; i++)
{
dNum=0.0;
dDeNum=0.0;
for(j=i; j<i+RVIPeriod; j++)

{
dValueUp=((Kapat[j]-Aç[j])+2*(Kapat[j+1]-Aç[j+1])+2*(Kapat[j+2]-Aç[j+2]) +(Kapat[j+3]-Aç[j+3]))/6;
dValueDown=((Yüksek[j]-Düşük[j])+2*(Yüksek[j+1]-Düşük[j+1])+2*(Yüksek[j+2]-Düşük[j+2]) +(Yüksek[j+3]-Düşük[j+3]))/6;
dNum+=dValueUp;
dDeNum+=dValueDown;
}
if(dDeNum!=0.0)
Tampon[i]=dNum/dDeNum;
başka
Tampon[i]=dNum;
}
//---- 2. tamponda sayılan sinyal hattı
nLimit=Barlar-RVIPeriod-7;
if(nCountedBars>RVIPPeriod+8)
nLimit=Barlar-nCountedBars+1;
for(i=0; i<=nLimit; i++)
SignalBuffer[i]=(Tampon[i]+2*Tampon[i+1]+2*Tampon[i+2]+Tampon[i+3])/6;
//----
dönüş(0);
}
{
OrderSend(Symbol,LotSize,Ask,StopLoss,TakeProfit,0,0);
eğer (Kapat<i)
OpenBuy();
dönüş(0);

OrderSend(Symbol,LotSize,Bid,StopLoss,TakeProfit,0,0);
eğer (Kapat>i)
OpenSell();
dönüş(0);
}


double GetSizeLot() { return(LotSize); }
double GetTakeProfitBuy() { return(Sor+TakeProfit*Puan); }
double GetTakeProfitSell() { return(Teklif Al-Kar*Puan); }
double GetStopLossBuy() { return(Bid-StopLoss*Puan); }
double GetStopLossSell() { return(Sor+StopLoss*Puan); }
string GetCommentForOrder() { return();}

dönüş(0); }

 

Konu açmadan önce lütfen diğer konuları okuyunuz. . . o zaman bunun gibi sayısız istek görürdünüz:

Lütfen kodu göndermek için bunu kullanın. . . okumayı kolaylaştırır.

 
albert_lim83 :

işte bu sabah yaptığım kod.

düzeltmeme yardımcı olabilecek var mı??

Bir EA'da Gösterge kodunu kullanamazsınız. . . linkini verdiğim konuyu oku Eşit sayıda { ve } ve eşit sayıda ( ve ) olması gerekir. . . . Bunu zaten bir kez söylemedim mi? https://www.mql5.com/en/forum/139447 Diğer gönderilerden öğrenmeye tenezzül etmiyorsun sanırım?