初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1244 1...123712381239124012411242124312441245124612471248124912501251...1503 新评论 Vladimir Karputov 2020.08.16 10:08 #12431 Nikita Bushuev:Vladimir,我也是用MQL5向导生成的代码。我试过你的EA,当我在GBPUSD货币上运行时,它也不对我起作用。日志显示如下。 阅读日志中的内容。有一个关于你的错误的描述。(如果是测试员,有一个日志,如果是终端,有两个日志)。 还要说明:你在什么符号和什么时间范围内开始。今天,心灵感应者们都在休假,没有人可以读懂你的心。 Nikita Bushuev 2020.08.16 10:18 #12432 Vladimir Karputov:阅读记录本上的内容。有一个关于你的错误的描述。(如果是测试器--有一条日志,如果是终端--有两条日志)。 测试员在创建一个指标句柄时在这个地方崩溃,即它=INVALID_HANDLE。在符号变量"EURUSD "中,周期也被设定。怎么会这样,错误4804是什么意思? 错误指示器不能应用 4804 指标不能应用于另一指标 m_handle=iAC(symbol,period); bool CiAC::Create(const string symbol,const ENUM_TIMEFRAMES period) { //--- check history if(!SetSymbolPeriod(symbol,period)) return(false); //--- create m_handle=iAC(symbol,period); //--- check result if(m_handle==INVALID_HANDLE) return(false); //--- idicator successfully created if(!Initialize(symbol,period)) { //--- initialization failed IndicatorRelease(m_handle); m_handle=INVALID_HANDLE; return(false); } //--- ok return(true); } Документация по MQL5: Предопределенные переменные / _Symbol www.mql5.com Предопределенные переменные / _Symbol - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Vladimir Karputov 2020.08.16 10:19 #12433 Nikita Bushuev:测试员在创建一个指标句柄时在此崩溃,即它=INVALID_HANDLE。在符号变量"EURUSD "中,周期也被设定。怎么会这样,错误4804是什么意思? 错误指示器不能应用 4804 该指标不能应用于另一指标 阅读日志--其中有关于你的错误的描述。你越早读,你就越早明白。还要说明:你要在哪个符号和哪个时间框架上启动。心灵感应者今天放假了,没有人可以读心。 Nikita Bushuev 2020.08.16 10:40 #12434 Vladimir Karputov:阅读该杂志--其中有关于你的错误的描述。你越早读,你就越早明白。还要说明:你是在哪个符号和哪个时间框架上推出的。今天心灵感应者们都在休假,没有人可以读懂你的心思。 通过重新安装平台,问题得到了解决。 Vladimir Karputov 2020.08.17 11:15 #12435 Vladimir Pastushak:尊敬的开发者,市场上的产品不能被验证所附代码CopyRates导致挂起,导致市场写入对欧元兑美元的测试,H1(净值)。测试员花费的时间太长了 未找到策略测试员报告 而验证人已经正确地通过了截止日期。你可能没有想太多,当你想为终端的所有符号在每个TICK上要求1440个元素?你甚至没有想过:服务器可以轻松地有五千多个符号,一个符号可以有1440个条子。 总而言之,这是一个适合新手的话题。绝对的。 Natali2020 2020.08.17 13:06 #12436 你好,请你告诉我为什么图表无法加载?14.08在MT5交易平台上注册,7个图表中的4个仍在挂着等待更新。虽然在之前注册的模拟账户上,所有的图表都会及时更新。 [删除] 2020.08.18 04:59 #12437 Vladimir Karputov:例子结果。 谢谢你,弗拉基米尔。我完全理解你的例子背后的逻辑。你相信吗? Artyom Trishkin 2020.08.18 05:17 #12438 Сергей Таболин:谢谢你,弗拉基米尔。我完全理解你的例子背后的逻辑。你相信吗? 我不是弗拉基米尔,但我要问你:什么是不工作?一切都早已不复存在,我也没心情去找你的例子。请再重复一遍。 [删除] 2020.08.18 08:19 #12439 Artyom Trishkin:我不是弗拉基米尔,但我要问:什么是不成功的?它早已不复存在,而我也不想寻找你的例子。请再重复一遍。这是我的例子。//+------------------------------------------------------------------+ //| cTest.mq5 | //| Copyright 2020, Tabolin S.N. | //| https://www.mql5.com/ru/users/vip.avos | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, Tabolin S.N." #property link "https://www.mql5.com/ru/users/vip.avos" #property version "1.00" //#property indicator_separate_window #property indicator_chart_window #property indicator_buffers 4 #property indicator_plots 1 //--- plot bars #property indicator_label1 "bars" #property indicator_type1 DRAW_CANDLES #property indicator_color1 clrGold #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- indicator buffers double barsBuffer1[]; double barsBuffer2[]; double barsBuffer3[]; double barsBuffer4[]; //+------------------------------------------------------------------+ double newCandles_Open[5] = {106.785, 106.724, 106.760, 106.767, 106.769}; double newCandles_High[5] = {106.792, 106.765, 106.780, 106.781, 106.769}; double newCandles_Low[5] = {106.716, 106.719, 106.746, 106.758, 106.715}; double newCandles_Close[5] = {106.724, 106.760, 106.766, 106.769, 106.725}; int tick_count = 0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0, barsBuffer1, INDICATOR_DATA); SetIndexBuffer(1, barsBuffer2, INDICATOR_DATA); SetIndexBuffer(2, barsBuffer3, INDICATOR_DATA); SetIndexBuffer(3, barsBuffer4, INDICATOR_DATA); ArraySetAsSeries(barsBuffer1 ,true); ArraySetAsSeries(barsBuffer2 ,true); ArraySetAsSeries(barsBuffer3 ,true); ArraySetAsSeries(barsBuffer4 ,true); PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0); PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0); PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,0); ArrayInitialize(barsBuffer1 ,0); ArrayInitialize(barsBuffer2 ,0); ArrayInitialize(barsBuffer3 ,0); ArrayInitialize(barsBuffer4 ,0); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate( const int rates_total, // размер входных таймсерий const int prev_calculated, // количество обработанных баров на предыдущем вызове const datetime& time[], // массив Time const double& open[], // массив Open const double& high[], // массив High const double& low[], // массив Low const double& close[], // массив Close const long& tick_volume[], // массив Tick Volume const long& volume[], // массив Real Volume const int& spread[] // массив Spread ) { if(rates_total - prev_calculated > 1) { if(prev_calculated == 0) { Print("~~~~ Предварительный расчёт индикатора."); for(int i = 0; i < 5; i++) { barsBuffer1[0] = newCandles_Open[i]; barsBuffer2[0] = newCandles_High[i]; barsBuffer3[0] = newCandles_Low[i]; barsBuffer4[0] = newCandles_Close[i]; } Print("~~~~ Предварительный расчёт индикатора закончен."); } else return(0); } else Print("tick_count = ",++tick_count); //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ 如果我把barBuffer1[0]改为barBuffer1[i],它就被画出来了。但是,我怎样才能添加一个新的蜡烛 呢? Artyom Trishkin 2020.08.18 08:45 #12440 Сергей Таболин:这是我的例子。 如果我把barBuffer1[0]改为barBuffer1[i],它就被画出来了。但随后如何添加新的蜡烛? 并非所有的数组都有相同的焦点。 1...123712381239124012411242124312441245124612471248124912501251...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
Vladimir,我也是用MQL5向导生成的代码。我试过你的EA,当我在GBPUSD货币上运行时,它也不对我起作用。
日志显示如下。
阅读日志中的内容。有一个关于你的错误的描述。(如果是测试员,有一个日志,如果是终端,有两个日志)。
还要说明:你在什么符号和什么时间范围内开始。今天,心灵感应者们都在休假,没有人可以读懂你的心。
阅读记录本上的内容。有一个关于你的错误的描述。(如果是测试器--有一条日志,如果是终端--有两条日志)。
测试员在创建一个指标句柄时在这个地方崩溃,即它=INVALID_HANDLE。在符号变量"EURUSD "中,周期也被设定。怎么会这样,错误4804是什么意思?
错误指示器不能应用
4804
指标不能应用于另一指标
m_handle=iAC(symbol,period);
测试员在创建一个指标句柄时在此崩溃,即它=INVALID_HANDLE。在符号变量"EURUSD "中,周期也被设定。怎么会这样,错误4804是什么意思?
错误指示器不能应用
4804
该指标不能应用于另一指标
阅读日志--其中有关于你的错误的描述。你越早读,你就越早明白。
还要说明:你要在哪个符号和哪个时间框架上启动。心灵感应者今天放假了,没有人可以读心。阅读该杂志--其中有关于你的错误的描述。你越早读,你就越早明白。
还要说明:你是在哪个符号和哪个时间框架上推出的。今天心灵感应者们都在休假,没有人可以读懂你的心思。通过重新安装平台,问题得到了解决。
尊敬的开发者,市场上的产品不能被验证
所附代码
CopyRates导致挂起,导致市场写入
对欧元兑美元的测试,H1(净值)。
测试员花费的时间太长了
未找到策略测试员报告
而验证人已经正确地通过了截止日期。你可能没有想太多,当你想为终端的所有符号在每个TICK上要求1440个元素?你甚至没有想过:服务器可以轻松地有五千多个符号,一个符号可以有1440个条子。
总而言之,这是一个适合新手的话题。绝对的。
例子
结果。
谢谢你,弗拉基米尔。我完全理解你的例子背后的逻辑。你相信吗?
谢谢你,弗拉基米尔。我完全理解你的例子背后的逻辑。你相信吗?
我不是弗拉基米尔,但我要问你:什么是不工作?一切都早已不复存在,我也没心情去找你的例子。请再重复一遍。
我不是弗拉基米尔,但我要问:什么是不成功的?它早已不复存在,而我也不想寻找你的例子。请再重复一遍。
这是我的例子。
如果我把barBuffer1[0]改为barBuffer1[i],它就被画出来了。但是,我怎样才能添加一个新的蜡烛 呢?这是我的例子。
如果我把barBuffer1[0]改为barBuffer1[i],它就被画出来了。但随后如何添加新的蜡烛?并非所有的数组都有相同的焦点。