Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Машинное обучение роботов Привет всем, я занимаюсь...
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
请告知为什么添加#property strict字符串会阻止箭头的绘制,以下是所有代码
//+------------------------------------------------------------------+
//| 震荡复习.mq4 ||
//| Copyright 2018, MetaQuotes Software Corp.
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#属性链接 "https://www.mql5.com"
#财产版本 "1.00"
#属性 indicator_separate_window
#属性 indicator_buffers 5
#property indicator_plots 4
//------ 绘制信号器
#property indicator_label1 "信号器"
#属性 indicator_type1 DRAW_LINE
#property indicator_color1 clrRed
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//------绘制Z
#property indicator_label2 "Z"
#属性 indicator_type2 DRAW_LINE
#属性指标_颜色2 clrBeige
#property indicator_style2 STYLE_DOT
#property indicator_width2 1
//--------情节湾
#property indicator_label3 "海湾"
#属性 indicator_type3 DRAW_ARROW
#property indicator_color3 clrLightSkyBlue
#property indicator_style3 STYLE_SOLID
#property indicator_width3 1
//--------情节卖点
#property indicator_label4 "卖出"
#属性 indicator_type4 DRAW_ARROW
#property indicator_color4 clrDeepPink
#property indicator_style4 STYLE_SOLID
#property indicator_width4 1
//----输入参数
输入int PCCI=14; //指标期PCCI
输入双KCCI=1.1; //调整系数
输入 int PMOM=14; //动量指标的周期。
输入 int KMOM=1111; // 平滑系数
输入 int PATR=14; // 指标周期 ATR
输入 int KATR=111111; // 平滑系数
输入 int PFOR=14; // Forse指标的周期。
输入 int KFOR=1111; // 平滑系数
输入 int PTVR=12; // TVI指标的周期p
输入 int PTVS=12; // TVI指标的周期c
输入 int PTVU=5; //TPI指标的周期。
输入 int KTVl=111; // 平准化系数
输入 int POSF=12; // AOS快速指标的周期。
输入 int POSS=26; // AOS指标槽的周期。
输入 int POSZ=9; //AOS指标的小周期
输入 int KAOS=111111; // 平滑系数
输入 int KAD=111; //AOS指标的位移系数
输入双倍KK=2.0; // 箭头的过滤器
输入int Amendment=20; //在指标窗口中以可消化的格式绘制箭头。
//----指标缓冲区
双重SignalerBuffer[]。
double Z_Buffer[];
double BayBuffer[]; double BayBuffer[];
double SellBuffer[]; double SellBuffer[];
double PatchBuffer[];
//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
int OnInit()
{
IndicatorSetInteger(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_ARROW)。
SetIndexStyle(3,DRAW_ARROW)。
SetIndexArrow(2,241);
SetIndexArrow(3,242)。
SetIndexEmptyValue(2,0.0)。
SetIndexEmptyValue(3,0.0)。
IndicatorShortName("Basement signaler(" +(string) PATR + ")")。
//---
return(INIT_SUCCEEDED)。
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[]。
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[]。
const int &spread[])
{
int i , limit=rates_total-prev_calculated 。
双CIC、ATR、MOM、FORC、AO、AC、AD、TVI、OSMA ;
//---- 设置计数参数
if(prev_calculated==0)limit--。
否则limit++。
//---- 计
for(i=limit-1; i>=0; i--)
{
cci=iCCI(NULL,0,PCCI,PRICE_TYPICAL,i)/KCCI。
mom=(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++)
{
如果(Z_Buffer[i]>SignalerBuffer[i]&&Z_Buffer[i+1]<SignalerBuffer[i+1]&&PatchBuffer[i]>KK)
BayBuffer[i]=SignalerBuffer[i]-Amendment。
如果(Z_Buffer[i]<SignalerBuffer[i]&&Z_Buffer[i+1]>SignalerBuffer[i+1]&&PatchBuffer[i]>KK)
SellBuffer[i]=SignalerBuffer[i]+Amendment。
}
//---为下一次调用返回prev_calculated的值
return(rate_total)。
}
//+------------------------------------------------------------------+
对该指标的卖方。
谁能告诉我,如果在EA测试期间,它拒绝复制缓冲区,该怎么办?
找出原因。
找出原因。
它可能是什么呢?是代码的大小问题吗?我特意关闭了所有的逻辑,只留下了缓冲区的复制,什么都没有。
它可能是什么呢?是代码的大小问题吗?我特意关闭了所有的逻辑,只留下了缓冲区的复制,什么都没有。
运行测试 时弹出内存不足的错误(无法启动)。如何解决这个问题?
重新启动终端后,测试开始了,然后在几次测试后又没有内存了。
运行测试 时弹出内存不足的错误(无法启动)。如何解决这个问题?
重新启动终端后,测试开始了,然后在几次测试后又出了内存。
你正在测试的程序吃掉了你所有的内存。寻找其中的错误。检查演示中的 "日志 "和 "专家顾问 "日志(不是在测试器中)--那里怎么说?也许,这说明了在时间框架变化过程中的内存泄漏问题。
没有代码,我不会进一步猜测。
你正在测试的程序吃掉了你所有的内存。寻找其中的错误。看看演示中的日志 "Log "和 "Expert Advisors"(不是在测试器中)--那里怎么说?也许,这说明了在时间框架变化过程中的内存泄漏问题。
如果没有代码,我不会进一步猜测。
测试结束 后,日志中有很多未删除的对象。几千名...这是个问题吗?
测试结束后,日志里有一堆不成功的对象。几千名...这就是问题所在吗?
这时 他们就能肯定地回答。