初学者的问题 MQL5 MT5 MetaTrader 5 - 页 779 1...772773774775776777778779780781782783784785786...1503 新评论 Mihail Marchukajtes 2017.09.09 18:05 #7781 Alexey Volchanskiy: .ex5对任何人都没有用,如果你想得到帮助,请公布源代码。操,我还以为是源代码呢 :-)我也在看其他的icons....。我想知道哪一个是源...... 这个 :-)事实证明,这不是.... 附加的文件: ChekParam.mq5 11 kb LookingFor 2017.09.09 18:56 #7782 重点是,从末尾开始的负第三小节上的脉冲是零,并被画成零。但它在缓冲区内不是零。我不知道是什么原因,但我通过在一个新的指标中粘贴所有的代码PULSE,绕过了icustom,解决了问题。我在减去第二条的时候没有错误。我没有改变代码中的其他内容,所以这确实是元引号中的一个错误。 Vladislav Andruschenko 2017.09.10 11:07 #7783 LookingFor:重点是,从末尾开始的负第三小节上的脉冲是零,并被画成零。但它在缓冲区内不是零。我不知道是什么原因,但我通过在一个新的指标中粘贴所有的代码PULSE,绕过了icustom,解决了问题。我在减去第二条的时候没有错误。我没有改变代码中的其他内容,所以这确实是元引号中的一个错误。没有代码,这个错误只能是你的。不幸的是,通过寻求帮助,你没有提供材料...... Mihail Marchukajtes 2017.09.10 15:01 #7784 有谁能帮忙吗?什么是错误,为什么指标不能正确显示? 附加的文件: ChekParam.mq5 11 kb LookingFor 2017.09.10 17:41 #7785 Vladislav Andruschenko: 不幸的是,当你请求帮助的时候,你没有给出材料...弗拉迪斯拉夫,以正义的名义,以了解这一切的愿望,出于对你的尊重,我把密码给你。//+------------------------------------------------------------------+ //| PULS_SWING.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property indicator_separate_window #property indicator_buffers 4 #property indicator_plots 1 //--- plot Pulse_Swing #property indicator_label1 "Pulse_Swing" #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- input parameters input double points=0.005; input double begin_price_level=1.0; //--- indicator buffers double Pulse_Swing [], pulse [] , trend [] , delta []; int PULSE_Handle ; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,Pulse_Swing,INDICATOR_DATA); SetIndexBuffer(1,pulse,INDICATOR_CALCULATIONS); SetIndexBuffer(2,trend,INDICATOR_CALCULATIONS); SetIndexBuffer(3,delta,INDICATOR_CALCULATIONS); IndicatorSetInteger(INDICATOR_DIGITS,0); ResetLastError(); PULSE_Handle = iCustom(NULL,0,"PULSE", points, // Points begin_price_level // begin_price_level ); Print("PULSE_Handle",PULSE_Handle," error = ",GetLastError()); //--- PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_SOLID); //ArrayFree (pulse);ArrayFree (delta);ArrayFree (Pulse_Swing); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { int bar, start ; if (prev_calculated==0) {pulse [0] = pulse [1] =0; start =begin+2 ;} else {start = prev_calculated ;} //Print(IntegerToString(bar)); for (bar= start ;bar<rates_total;bar ++) {CopyBuffer(PULSE_Handle,0,bar,1,pulse); //Print(IntegerToString(pulse[bar])); if ((pulse [bar-1]- pulse [bar -2])>0) trend[bar-1] = 1 ; // else if ((pulse [bar-1] - pulse [bar -2])<0) trend[bar-1] = -1 ; // else if (pulse [bar-1] == pulse [bar -2]) {trend[bar-1] = trend[bar-2] ;} // else continue ; delta[bar] = pulse[bar]- pulse[bar-1]; if (trend [bar-1]== 1 && pulse [bar] != pulse [bar-1]) Pulse_Swing [bar] = Pulse_Swing [bar-1] + delta[bar]; else if (trend [bar-1]== -1 && pulse [bar] != pulse [bar-1]) Pulse_Swing [bar] = Pulse_Swing [bar-1] - delta[bar]; else if (delta [bar]==0 )Pulse_Swing [bar] = Pulse_Swing [bar-1] ; } //Print(IntegerToString(delta[rates_total-1])); Print(IntegerToString(delta[rates_total-2])); //Print(IntegerToString(pulse[rates_total-1])); Print(IntegerToString(pulse[rates_total-3])); Print(IntegerToString(pulse[rates_total-2])); Print(IntegerToString(pulse[rates_total-1])); //--- return value of prev_calculated for next call return(rates_total); } Ivan Ivanov 2017.09.13 10:11 #7786 我在阅读交易操作的结果 时遇到了困难。我是这样写的。 MqlTradeRequest request={0}; MqlTradeResult result={0}; //--- установка параметров операции .... //--- отправка запроса if ( !OrderSend(request,result) ) PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось else // Я хочу получить парамеры резултата { Sleep(9999); // Жду получения резултата double ClosePrice=result.price; } 如果你删除睡眠:我总是得到ClosePrice=0.0。即使我等待10秒钟(我不想等待更长时间),我几乎总能得到结果,但有时却得不到。我怎样才能得到结果?OrderSend()的描述说。 注意事项 一个交易请求会在交易服务器上经过几个验证阶段。首 先, 请求参数的所有必要字段都会被检查是否正确 ,如果没有错误,服务器会接受订单进行进一步处理。如果订单被交易服务器成功接受,OrderSend()函数返回true。也就是说,当我从OrderSend()得到true时,我没有得到MqlResult参数,如果我理解正确的话。他们什么时候会来找我? fxsaber 2017.09.13 10:14 #7787 Ivan Ivanov:我无法阅读我的交易结果。 关于交易、自动交易系统和策略测试的论坛 修改订单时出现错误131 fxsaber, 2017.09.12 19:47 你所要做的就是写下交易服务器的名称和符号,问题很快就会得到解决,因为每个人都可以自己尝试。同时,人们会感觉到,任务不是找到一个解决方案,而是回答是/否。 Dzyga 2017.09.14 14:36 #7788 各位程序员。 这里有一个问题:如果MT5中的策略测试器 只在开盘价时显示出良好的结果,那么如果机器人只在开盘价时开仓交易,结果是否也是如此? Vladimir Karputov 2017.09.14 14:41 #7789 Dzyga:各位程序员。 问题:如果MT5中的策略测试器 只在开盘价时显示出良好的结果,那么机器人只在开盘价时进行交易,也会有同样的结果吗?这很容易检查:在EA中,你只在开盘价(即在开盘时)打开交易,在策略测试器中,你在 "所有刻度 "的刻度生成模式下检查。 LookingFor 2017.09.14 20:05 #7790 同事们,请帮助我我不明白这个循环出了什么问题,Handle的数据没有进入psa1数组。if (prev_calculated == 0 ){i=bars =start=1;} else {start = prev_calculated ;} for ( bars=start ; bars<rates_total ; bars ++) {CopyBuffer(pulse_Handle,0,start,1,pca1); if (pca1[bars]!=pca1[bars-1]) {pca2[i]=pca1[bars]; i++; string s="";s=IntegerToString(pca1[bars])+" ";Print(s); continue;} else continue ;} 1...772773774775776777778779780781782783784785786...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
.ex5对任何人都没有用,如果你想得到帮助,请公布源代码。
操,我还以为是源代码呢 :-)我也在看其他的icons....。我想知道哪一个是源...... 这个 :-)
事实证明,这不是....
重点是,从末尾开始的负第三小节上的脉冲是零,并被画成零。但它在缓冲区内不是零。
我不知道是什么原因,但我通过在一个新的指标中粘贴所有的代码PULSE,绕过了icustom,解决了问题。
我在减去第二条的时候没有错误。我没有改变代码中的其他内容,所以这确实是元引号中的一个错误。
重点是,从末尾开始的负第三小节上的脉冲是零,并被画成零。但它在缓冲区内不是零。
我不知道是什么原因,但我通过在一个新的指标中粘贴所有的代码PULSE,绕过了icustom,解决了问题。
我在减去第二条的时候没有错误。我没有改变代码中的其他内容,所以这确实是元引号中的一个错误。
没有代码,这个错误只能是你的。不幸的是,通过寻求帮助,你没有提供材料......
不幸的是,当你请求帮助的时候,你没有给出材料...
弗拉迪斯拉夫,以正义的名义,以了解这一切的愿望,出于对你的尊重,我把密码给你。
我在阅读交易操作的结果 时遇到了困难。我是这样写的。
如果你删除睡眠:我总是得到ClosePrice=0.0。即使我等待10秒钟(我不想等待更长时间),我几乎总能得到结果,但有时却得不到。
我怎样才能得到结果?
OrderSend()的描述说。
注意事项
一个交易请求会在交易服务器上经过几个验证阶段。首 先, 请求参数的所有必要字段都会被检查是否正确 ,如果没有错误,服务器会接受订单进行进一步处理。如果订单被交易服务器成功接受,OrderSend()函数返回true。
也就是说,当我从OrderSend()得到true时,我没有得到MqlResult参数,如果我理解正确的话。
他们什么时候会来找我?
我无法阅读我的交易结果。
关于交易、自动交易系统和策略测试的论坛
修改订单时出现错误131
fxsaber, 2017.09.12 19:47
你所要做的就是写下交易服务器的名称和符号,问题很快就会得到解决,因为每个人都可以自己尝试。
同时,人们会感觉到,任务不是找到一个解决方案,而是回答是/否。
各位程序员。
这里有一个问题:如果MT5中的策略测试器 只在开盘价时显示出良好的结果,那么如果机器人只在开盘价时开仓交易,结果是否也是如此?
各位程序员。
问题:如果MT5中的策略测试器 只在开盘价时显示出良好的结果,那么机器人只在开盘价时进行交易,也会有同样的结果吗?
这很容易检查:在EA中,你只在开盘价(即在开盘时)打开交易,在策略测试器中,你在 "所有刻度 "的刻度生成模式下检查。
同事们,请帮助我
我不明白这个循环出了什么问题,Handle的数据没有进入psa1数组。