![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
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
...
2 şey yapmanız gerekir:Bundan sonra şöyle bir şey alacaksınız:
İyi hafta sonları![](https://c.mql5.com/forextsd/smiles/smile.png)
#özellik göstergesi_separate_window
#özellik göstergesi_tamponları 1
#özellik göstergesi_renk1 Kırmızı
#özellik göstergesi_maksimum 100
#özellik göstergesi_level1 70
#özellik göstergesi_level2 50
#özellik göstergesi_level3 30
#özellik göstergesi_minimum 0
//---- giriş parametreleri
harici int rsiperiod = 14 ;
extern int Kısa Süre = 5 ;
dış int Ortadönem = 8;
extern int Uzunperiyot = 13;
harici int mamode = 2 ;
//---- arabellekler
çift RSI[];
çift KısaRSI[];
çift OrtaRSI[];
çift UzunRSI[];
çift SMRSI[];
int dönem ;
//+------------------------------------------- -------------------+
//| Özel gösterge başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//---- göstergeler
GöstergeTamponları(5);
SetIndexBuffer(0,SMRSI);
SetIndexBuffer(1,RSI);
SetIndexBuffer(2,ShortRSI);
SetIndexBuffer(3,OrtaRSI);
SetIndexBuffer(4,LongRSI);
//---- DataWindow ve gösterge alt pencere etiketi için isim
IndicatorShortName("SMRSI("+rsiperiod+","+Kısaperiyot+","+Ortaperiyod+","+Uzunperiyod +","+mamode+")");
SetIndexDrawBegin(0,rsiperiod+Uzundönem);
periyot=Kısa periyot+Orta periyot+Uzun periyot;
dönüş(0);
}
//+------------------------------------------- -------------------+
//| Özel gösterge yineleme işlevi |
//+------------------------------------------- -------------------+
int başlangıç()
{
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = Barlar-sayılan_barlar;
for( i=limit; i>=0; i--) RSI=iRSI(NULL,0,rsiperiod,0,i);
for( i=limit; i>=0; i--) ShortRSI=iMAOnArray(RSI,0,Shortperiod,0,mamode,i);
for( i=limit; i>=0; i--) MiddleRSI=iMAOnArray(RSI,0,Ortadönem,0,mamode,i);
for( i=limit; i>=0; i--) LongRSI=iMAOnArray(RSI,0,Longperiod,0,mamode,i);
for( i=limit; i>=0; i--) { if(dönem!=0) SMRSI=(Kısadönem/dönem)*KısaRSI+(Orta dönem/dönem)*OrtaRSI+(Uzun dönem/dönem)*UzunRSI;}
dönüş(0);
}
//+------------------------------------------- -------------------+n_n
2 şey yapmanız gerekir:
Bundan sonra şöyle bir şey alacaksınız:
İyi hafta sonlarıTeşekkür ederim !
Merhaba,
mql4 web sitesinde ekli göstergeyi indirdim. Bu göstergeye dayalı bir EA yapmaya çalışıyorum ama birkaç saniye sonra geriye dönük testi başlattığımda platformlar çöküyor ve bunun göstergenin bir hatası olduğunu düşünüyorum çünkü çok fazla işlemci kullanıyor.
Bu sorunu çözmek için kodu hafifletmenin mümkün olup olmadığını soruyorum.
Disponibility için teşekkür ederim.
cronex_taichi.mq4
dasio
Bu snippet ile test ettim ve sorunsuz çalışıyor. Kullandığın parametreleri bilmiyorum, bu yüzden bu sadece varsayılan bir göstergeyi çağırıyor, ancak bu şekilde bir sorun yok
{
return(0);
}
int start()
{
Comment(iCustom(NULL,0,"Cronex Taichi",0,0));
return(0);
}
Merhaba,
mql4 web sitesinde ekli göstergeyi indirdim. Bu göstergeye dayalı bir EA yapmaya çalışıyorum ama birkaç saniye sonra geriye dönük testi başlattığımda platformlar çöküyor ve bunun göstergenin bir hatası olduğunu düşünüyorum çünkü çok fazla işlemci kullanıyor.
Bu sorunu çözmek için kodu hafifletmenin mümkün olup olmadığını soruyorum.
Disponibilite için teşekkür ederim.
cronex_taichi.mq4dasio
Bu snippet ile test ettim ve sorunsuz çalışıyor. Kullandığın parametreleri bilmiyorum, bu yüzden bu sadece varsayılan bir göstergeyi çağırıyor, ancak bu şekilde bir sorun yok
{
return(0);
}
int start()
{
Comment(iCustom(NULL,0,"Cronex Taichi",0,0));
return(0);
}
Cevabın için teşekkürler,
Gördüğüm şey, geçmişte gösterge tekrar tekrar yüklendi, bu yüzden icustom kodunu yalnızca yeni bir mum olayında hareket ettiriyorum ama sorun hala devam ediyor.
Neden bilmiyorum.
Yine de ilgisizliğiniz için teşekkür ederim.
Merhaba,
sorunu buldum. Şimdi her şey yolunda.
Başka bir ea ile başka bir sorunum var.
Bu iki koda sahibim ve Lotti() işlevi bana bir sipariş gönderimi için lot sayısını döndürür.
Derlediğimde Posizioni Dahili Hatası alıyorum. Sorun nedir? Teşekkür ederim;
{
int intCount=0;
int intPOS=0;
bool boolTerm=false;
while(boolTerm==false)
{
if(OrderSelect(intPOS,SELECT_BY_POS))
{
if(OrderMagicNumber()==intMagic) intCount++;
intPOS++;
}
else
boolTerm=true;
}
return(intCount);
}
[/PHP]
[PHP]int Lotti(){
int Lotti;
int Posizioni=OTBM(MagicNumber);
switch (Posizioni)
{
case 0 : Lotti=0.1; break;
case 1 : Lotti=0.2; break;
case 2 : Lotti=0.4; break;
case 3 : Lotti=0.8; break;
case 4 : Lotti=1.6; break;
case 5 : Lotti=3.2; break;
case 6 : Lotti=6.4; break;
case 7 : Lotti=12.8; break;
}
return(Lotti);
}OTBM()'yi şununla değiştirmeyi deneyin:
{
int intCount=0;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if(OrderMagicNumber()==intMagic) intCount++;
}
}
return(intCount);
}
[/PHP]
Hi,
i found the problem. Now all its ok.
I have another problem with another ea.
I have this two code and the function Lotti() would be return me the number of lot for an ordersend.
When i compile it i receive Posizioni Internal Error. What's wrong? Thank you;
{
int intCount=0;
int intPOS=0;
bool boolTerm=false;
while(boolTerm==false)
{
if(OrderSelect(intPOS,SELECT_BY_POS))
{
if(OrderMagicNumber()==intMagic) intCount++;
intPOS++;
}
else
boolTerm=true;
}
return(intCount);
}
[PHP]int Lotti(){
int Lotti;
int Posizioni=OTBM(MagicNumber);
switch (Posizioni)
{
case 0 : Lotti=0.1; break;
case 1 : Lotti=0.2; break;
case 2 : Lotti=0.4; break;
case 3 : Lotti=0.8; break;
case 4 : Lotti=1.6; break;
case 5 : Lotti=3.2; break;
case 6 : Lotti=6.4; break;
case 7 : Lotti=12.8; break;
}
return(Lotti);
}Merhaba, -.-"
Bu kodlarla huzur bulamıyorum eheheh.
Bana tüm openorder kârıyla sonuçlanması gereken bir fonksiyonla ilgili bir sorunum var ama bence işe yaramıyor çünkü koşula asla saygı gösterilmedi. Kodun altında:
if(Profit()>=0.....[/PHP]
[PHP]double Profit()
{
int total=OrdersTotal();
double profit=0;
for(int i=0; i<total; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) continue;
profit+=OrderProfit();
}
return(profit);
}dasio
Şu şekilde deneyin:
if(Profit()>=0.....[/PHP]
{
int total=OrdersTotal();
double profit=0;
for(int i=0; i<total-1; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue;
profit+=OrderProfit();
}
return(profit);
}[/PHP]
Hi, -.-"
I do not find peace with these codes eheheh.
I have a problem with a function that have to result me the profit of all openorder but i think it's not work because the condition never been respected. Below the code:
[PHP].....
if(Profit()>=0.....[PHP]double Profit()
{
int total=OrdersTotal();
double profit=0;
for(int i=0; i<total; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) continue;
profit+=OrderProfit();
}
return(profit);
}dasio
Şu şekilde deneyin:
if(Profit()>=0.....[/PHP]
[PHP]double Profit()
{
int total=OrdersTotal();
double profit=0;
for(int i=0; i<total-1; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue;
profit+=OrderProfit();
}
return(profit);
}Bu şekilde belirtilen sihirli sayı ile açılmayan siparişleri kontrol ediyorum değil mi? Belirli bir sembol ve sihirli numara ile sırayı kontrol etmem gerekiyor. Önemli mi bilmiyorum ama hatayı strateji test cihazında buldum