MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 592

 

bana neden #property strict satırını eklerken okların burada çizilmeyi bıraktığını söyle, kodun tamamı

//+------------------------------------------- --------------------+

//| salınan inceleme.mq4 |

//| Telif Hakkı 2018, MetaQuotes Yazılım A.Ş. |

//| https://www.mql5.com |

//+------------------------------------------- --------------------+

#property telif hakkı "Telif Hakkı 2018, MetaQuotes Software Corp."

#özellik bağlantısı "https://www.mql5.com"

#özellik sürümü "1.00"

#özellik göstergesi_separate_window

#özellik göstergesi_buffers 5

#özellik göstergesi_plots 4

//--- arsaSignaler

#property Indicator_label1 "Signaler"

#özellik göstergesi_type1 DRAW_LINE

#özellik göstergesi_renk1 clrRed

#özellik göstergesi_style1 STYLE_SOLID

#özellik göstergesi_width1 1

//--- Z grafiği

#özellik göstergesi_etiket2 "Z"

#özellik göstergesi_type2 DRAW_LINE

#özellik göstergesi_color2 clrBej

#özellik göstergesi_style2 STYLE_DOT

#özellik göstergesi_width2 1

//--- arsa Körfezi

#özellik göstergesi_label3 "Körfez"

#özellik göstergesi_type3 DRAW_ARROW

#özellik göstergesi_renk3 clrLightSkyBlue

#özellik göstergesi_style3 STYLE_SOLID

#özellik göstergesi_width3 1

//--- arsa Sat

#özellik göstergesi_label4 "Sat"

#özellik göstergesi_type4 DRAW_ARROW

#özellik göstergesi_renk4 clrDeepPink

#özellik göstergesi_style4 STYLE_SOLID

#özellik göstergesi_width4 1

//--- giriş parametreleri

girdi int PCCI=14; // SGK gösterge periyodu

giriş çift KCCI=1.1; // seviyelendirme faktörü

giriş int PMOM=14; // Momentum gösterge periyodu

girdi int KMOM=1111; // seviyelendirme faktörü

giriş int PATR=14; // ATP gösterge periyodu

girdi int KATR=1111111; // seviyelendirme faktörü

girdi int PFOR=14; // Gösterge periyodunu zorla

girdi int KFOR=1111; // seviyelendirme faktörü

giriş int PTVR=12; // TVI göstergesinin p periyodu

giriş int PTVS=12; // TVI göstergesinden nokta

giriş int PTVU=5; // TVI göstergesinin periyodu

girdi int KTVl=111; // seviyelendirme faktörü

giriş int POSF=12; // AOC göstergesinin periyodu hızlı

giriş int POSS=26; // AOC göstergesinin yavaş dönemi

giriş int POSZ=9; // AOC göstergesinin nokta sma'sı

girdi int KAOS=111111; // seviyelendirme faktörü

girdi int KAD=111; // BP göstergesinin tesviye katsayısı

giriş çift KK=2.0; // oklar için filtre

input int Değişiklik=20; // gösterge penceresindeki okları sindirilebilir bir biçimde çizme

//--- gösterge arabellekleri

doubleSignalerBuffer[];

çift Z_Buffer[];

çift BayBuffer[];

çift SellBuffer[];

çift PatchBuffer[];

//+------------------------------------------- --------------------+

//| özel gösterge başlatma işlevi |

//+------------------------------------------- --------------------+

int OnInit()

{

GöstergeSetInteger(INDICATOR_DIGITS,0);

SetIndexBuffer(0,SignalerBuffer);

SetIndexBuffer(1,Z_Buffer);

SetIndexBuffer(2,BayBuffer);

SetIndexBuffer(3,SellBuffer);

SetIndexBuffer(4,PatchBuffer);

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexStyle(2,DRAW_OK);

SetIndexStyle(3,DRAW_OK);

SetIndexArrow(2,241);

SetIndexArrow(3,242);

SetIndexEmptyValue(2,0.0);

SetIndexEmptyValue(3,0.0);

IndicatorShortName("Bodrum sinyali(" +(string) PATR + ")");

//---

dönüş(INIT_SUCCESSED);

}

//+------------------------------------------- --------------------+

//| özel gösterge yineleme işlevi |

//+------------------------------------------- --------------------+

int OnCalculate(const int oranları_toplam,

const int önceki_hesaplanmış,

const tarihsaat &saat[],

const double &aç[],

const çift &yüksek[],

const çift &düşük[],

const double &kapat[],

const uzun &tick_volume[],

const uzun &hacim[],

const int &spread[])

{

int i , limit=oranlar_toplam-önceki_hesaplanmış ;

çift cci,atr,anne,forc,ao,ac,ad,tvi,osma ;

//---- hesaplama parametrelerini ayarla

if(prev_calculated==0)limit--;

başka limit++;

//---- saymak

for(i=limit-1; i>=0; i--)

{

cci=iCCI(NULL,0,PCCI,PRICE_TYPICAL,i)/KCCI;

anne=(iMomentum(NULL,0,PMOM,PRICE_TYPICAL,i)-100)*KMOM ;

forc=iForce(NULL,0,PFOR,MODE_SMA,PRICE_TYPICAL,i)*KFOR;

tvi=iCustom(NULL,0,"TVI_v2",PTVR,PTVS,PTVU,4,i)*KTVl ;

osma=iOsMA(NULL,0,POSF,POSS,POSZ,PRICE_TYPICAL,i)*KAOS;

atr=iATR(NULL,0,PATR,i)*KATR;

ao=iAO(NULL,0,i)*KAOS ;

ac=iAC(NULL,0,i)*KAOS ;

ad=iAD(NULL,0,i)/KAD ;

SignalerBuffer[i]=(cci+mom+forc+tvi+osma+atr+ao+ac+ad)/9 ;

}

for(i=limit-1; i>=0; i--)

{

Z_Buffer[i] = (SignalerBuffer[i]+SignalerBuffer[i-1])/2 ;

PatchBuffer[i] = MathAbs(SignalerBuffer[i]-Z_Buffer[i]) ;

}

for(i=0; i<limit && !IsStopped(); i++)

{

if(Z_Buffer[i]>SignalerBuffer[i]&&Z_Buffer[i+1]<SignalerBuffer[i+1]&&PatchBuffer[i]>KK)

BayBuffer[i]=SignalerBuffer[i]-Değişiklik;

if(Z_Buffer[i]<SignalerBuffer[i]&&Z_Buffer[i+1]>SignalerBuffer[i+1]&&PatchBuffer[i]>KK)

SellBuffer[i]=SignalerBuffer[i]+Değişiklik;

}

//--- sonraki çağrı için prev_hesaplananın dönüş değeri

dönüş(oranlar_toplam);

}

//+------------------------------------------- --------------------+


Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Машинное обучение роботов Привет всем, я занимаюсь...
 
Alekseu Fedotov :
Bu göstergenin satıcısına.

Teşekkürler..
 
Danışmanın testi sırasında arabellekleri kopyalamayı reddederse, biri bana ne yapacağımı söyleyebilir mi?
 
Roman Sharanov :
Danışmanın testi sırasında arabellekleri kopyalamayı reddederse, biri bana ne yapacağımı söyleyebilir mi?

Nedeni ortaya çıkarın.

 
Artyom Trishkin :

Nedeni ortaya çıkarın.

Ve ne olabilir? Kod boyutunda mı? Tüm mantığı kasıtlı olarak kapattım, yalnızca arabelleği kopyalamayı bıraktım ve hiçbir şey yapmadım

 
Roman Sharanov :

Ve ne olabilir? Kod boyutunda mı? Tüm mantığı kasıtlı olarak kapattım, yalnızca arabelleği kopyalamayı bıraktım ve hiçbir şey yapmadım

Hafta sonu tüm telepatlar...
 

Test başlatıldığında bellek yetersiz hatası oluşur (başlamaz). Nasıl tedavi edilir?

Terminali yeniden başlattıktan sonra test başlar ve birkaç testten sonra tekrar bellek yetersiz kalır.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Juer :

Test başlatıldığında bellek yetersiz hatası oluşur (başlamaz). Nasıl tedavi edilir?

Terminali yeniden başlattıktan sonra test başlar ve birkaç testten sonra tekrar bellek yetersiz kalır.

Test edilen program tüm hafızanızı tüketiyor. İçindeki hataları arayın. Demodaki (test cihazında değil) "Journal" ve "Danışmanlar" dergilerine bir göz atın - orada ne yazıyor? Belki de bir zaman çerçevesi değişikliği sırasında bir bellek sızıntısı hakkında yazıyor.

Kod olmadan, daha fazla tahminde bulunmayacağım.

 
Artyom Trishkin :

Test edilen program tüm hafızanızı tüketiyor. İçindeki hataları arayın. Demodaki (test cihazında değil) "Journal" ve "Danışmanlar" dergilerine bir göz atın - orada ne yazıyor? Belki de bir zaman çerçevesi değişikliği sırasında bir bellek sızıntısı hakkında yazıyor.

Kod olmadan, daha fazla tahminde bulunmayacağım.

Testin bitiminden sonra günlüklerde silinmemiş birçok nesne var. Birkaç bin ... Sorun bu mu?

 
Juer :

Testin bitiminden sonra günlüklerde silinmemiş birçok nesne var. Birkaç bin ... Sorun bu mu?

Burada size kesin cevabı verebilirler.