[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 797 1...790791792793794795796797798799800801802803804...1145 新评论 alla 2010.08.11 18:01 #7961 同志们!这是我的第2次尝试,创造一个神奇的工具,读取ROC AUDUSD和GBPUSD,在GBPAUD上交易!)这有点原始,但我真的想试试!!!。当我在没有优化的情况下在测试器中运行它时,它冻结了,但一直在成功加载......而最终--没有一笔交易。好吧,显然我搞砸了,但在哪里,请告诉我,知识渊博的人!!!:))这是一个EA代码。 BETWEEN数据来自一个正常的自定义ROC //+------------------------------------------------------------------+ //| Robot_Rocky_Rich | //| JonsonAlla | //| deep_ampik@bk.ru | //+------------------------------------------------------------------+ extern double TakeProfit = 700; extern double Sl = 200; extern double Lots = 0.01; //+------------------------------------------------------------------+ int start() { int cnt, ticket; double x1= iCustom("AUDUSD",PERIOD_H1,"ROC",12,1,0); double x2= iCustom("GBPUSD",PERIOD_H1,"ROC",12,1,0); /**total=OrdersTotal(); if(total<1)//проверка количества ордеров { if(AccountFreeMargin()<(1000*Lots)) { Print("Недостаточно средств = ", AccountFreeMargin()); return(0); }**/ if (x1<x2) { ticket=OrderSend("GBPAUD",OP_BUY,Lots,Ask,30,Bid-Sl*Point,Ask+TakeProfit*Point,"-",0,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("открыта позиция BUY : ",OrderOpenPrice()); } else Print("Ошибка при открытии BUY позиции : ",GetLastError()); return(0); } if (x1>x2) { ticket=OrderSend("GBPAUD",OP_SELL,Lots,Bid,30,Ask+Sl*Point,Bid-TakeProfit*Point,"-",0,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("открыта позиция SELL : ",OrderOpenPrice()); } else Print("Ошибка при открытии SELL позиции : ",GetLastError()); return(0); } return(0); } T-G 2010.08.11 18:09 #7962 Vinin: IndicatorCounted()在EA中不起作用。它只用于指标。也许我们应该把问题扩大一点。有不同的方法来解决这个问题。最简单的是优化指标(但并不总是可能的),你可以将计算结果转移到专家顾问,但也不总是可能的。实际上,你必须看一下指标我想把计算代码转移到EA中,在一个指标中,计算代码以一个循环开始......我怎样才能用一个更正确的代码来代替它呢7 int CountedBars=IndicatorCounted(); if(CountedBars< 0) CountedBars= 0; if(CountedBars> 0) CountedBars--; cnt = Bars - CountedBars; for(int i = 0; i < cnt ;i++) Victor Nikolaev 2010.08.11 18:12 #7963 obla4ko:同志们!这是我的第2次尝试,创造一个神奇的工具,读取ROC AUDUSD和GBPUSD,在GBPAUD上交易!)这有点原始,但我真的想试试!!!。当我在没有优化的情况下在测试器中运行它时,它冻结了,但一直在成功加载......而最终--没有一笔交易。好吧,显然我搞砸了,但在哪里,请告诉我,知识渊博的人!!!:))这是所谓的专家顾问的代码,它从通常的自定义ROC中获取数据。 尝试使用原始的历史加载 控制 附加的文件: robot_rocky_richh.mq4 3 kb alla 2010.08.11 18:26 #7964 Vinin: 尝试用原始的控制方式加载历史 也许仅仅比较x1和x2是不正确的,而应该附加在一些东西上,比如说,最后一棒? 根据指标逻辑,EA应该至少打开一个头寸,而不是关闭它,因为关闭在程序中没有实现:)),而且一种货币的ROC总是大于另一种货币的ROC... Victor Nikolaev 2010.08.11 18:28 #7965 也许指标调用 不太正确。我得自己去找找看。只是看起来,缓冲区应该是零,而不是第一。 Victor Nikolaev 2010.08.11 18:29 #7966 我没有这样的指标 Петр 2010.08.11 18:31 #7967 T-G: 我想把计算代码转移到专家顾问,计算代码以一个循环开始......我怎样才能用一个更正确的代码来代替它呢7 1.为什么????????????????????? 但是,如果你真的需要,那么 2.为什么我他妈的什么都不回答?告诉你--在文章中,有一篇科西岑关于这个问题的文章(就在这里,上面有链接)。我必须向你重复多少次?也许你有别的事情要做? alla 2010.08.11 18:33 #7968 Vinin: 我没有这样的指标 以下是ROC指标的代码 //+------------------------------------------------------------------+ //| ROC.mq4 | //| Copyright © 2006, Robert Hill | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Robert Hill" //---- indicator settings #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red //---- indicator parameters extern int RPeriod = 12; extern bool UsePercent = true; //---- indicator buffers double RateOfChange[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- drawing settings SetIndexStyle(0, DRAW_LINE); SetIndexDrawBegin(0, RPeriod); IndicatorDigits(Digits + 1); //---- indicator buffers mapping if(!SetIndexBuffer(0, RateOfChange)) Print("cannot set indicator buffers!"); //---- name for DataWindow and indicator subwindow label IndicatorShortName("ROC(" + RPeriod + ")"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Moving Averages Convergence/Divergence | //+------------------------------------------------------------------+ int start() { int limit; double ROC, CurrentClose, PrevClose; int counted_bars = IndicatorCounted(); //---- check for possible errors if(counted_bars < 0) return(-1); //---- last counted bar will be recounted if(counted_bars > 0) counted_bars--; limit = Bars - counted_bars - RPeriod; //---- ROC calculation for(int i = 0; i < limit; i++) { CurrentClose = iClose(NULL, 0, i); PrevClose = iClose(NULL, 0, i + RPeriod); ROC = CurrentClose - PrevClose; //---- if(UsePercent) { if(PrevClose != 0) RateOfChange[i] = 100 * ROC / PrevClose; } else RateOfChange[i] = ROC; } //---- done return(0); } //+------------------------------------------------------------------+ Петр 2010.08.11 18:35 #7969 "难道没有人需要拖地吗?我会来洗它们的!" (с) 这里是指标代码向专家代码的转移。 Victor Nikolaev 2010.08.11 18:36 #7970 obla4ko: 以下是ROC指标的代码 指标代码中存在一个错误。 1...790791792793794795796797798799800801802803804...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
同志们!这是我的第2次尝试,创造一个神奇的工具,读取ROC AUDUSD和GBPUSD,在GBPAUD上交易!)这有点原始,但我真的想试试!!!。当我在没有优化的情况下在测试器中运行它时,它冻结了,但一直在成功加载......而最终--没有一笔交易。好吧,显然我搞砸了,但在哪里,请告诉我,知识渊博的人!!!:))这是一个EA代码。 BETWEEN数据来自一个正常的自定义ROC
IndicatorCounted()在EA中不起作用。它只用于指标。也许我们应该把问题扩大一点。有不同的方法来解决这个问题。最简单的是优化指标(但并不总是可能的),你可以将计算结果转移到专家顾问,但也不总是可能的。实际上,你必须看一下指标
我想把计算代码转移到EA中,在一个指标中,计算代码以一个循环开始......我怎样才能用一个更正确的代码来代替它呢7
同志们!这是我的第2次尝试,创造一个神奇的工具,读取ROC AUDUSD和GBPUSD,在GBPAUD上交易!)这有点原始,但我真的想试试!!!。当我在没有优化的情况下在测试器中运行它时,它冻结了,但一直在成功加载......而最终--没有一笔交易。好吧,显然我搞砸了,但在哪里,请告诉我,知识渊博的人!!!:))这是所谓的专家顾问的代码,它从通常的自定义ROC中获取数据。
尝试使用原始的历史加载 控制
尝试用原始的控制方式加载历史
也许仅仅比较x1和x2是不正确的,而应该附加在一些东西上,比如说,最后一棒? 根据指标逻辑,EA应该至少打开一个头寸,而不是关闭它,因为关闭在程序中没有实现:)),而且一种货币的ROC总是大于另一种货币的ROC...
也许指标调用 不太正确。我得自己去找找看。只是看起来,缓冲区应该是零,而不是第一。
我没有这样的指标
我想把计算代码转移到专家顾问,计算代码以一个循环开始......我怎样才能用一个更正确的代码来代替它呢7
1.为什么?????????????????????
但是,如果你真的需要,那么
2.为什么我他妈的什么都不回答?告诉你--在文章中,有一篇科西岑关于这个问题的文章(就在这里,上面有链接)。我必须向你重复多少次?也许你有别的事情要做?
我没有这样的指标
以下是ROC指标的代码
"难道没有人需要拖地吗?我会来洗它们的!" (с)
这里是指标代码向专家代码的转移。
以下是ROC指标的代码
指标代码中存在一个错误。