[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 704 1...697698699700701702703704705706707708709710711...1145 新评论 odiseiff 2010.07.14 14:29 #7031 ToLik_SRGV: 还有奥德修斯,在前面的例子中,你是这样的。 而现在是这样的。 你没有删除任何东西,还是我在幻想? 这里是原始代码 IndicatorBuffers(7); SetIndexBuffer(0, MACDBuffer); SetIndexBuffer(1, SignalBuffer); SetIndexBuffer(2, FastEMABuffer); SetIndexBuffer(3, SlowEMABuffer); SetIndexBuffer(4, SignalEMABuffer); SetIndexBuffer(5, Buffer1); SetIndexBuffer(6, Buffer2); SetIndexStyle(0, DRAW_NONE); SetIndexStyle(1, DRAW_LINE,EMPTY); SetIndexStyle(2, DRAW_LINE,EMPTY,2 ); SetIndexStyle(3, DRAW_NONE,EMPTY,2); SetIndexStyle(4, DRAW_NONE); SetIndexStyle(5, DRAW_HISTOGRAM,EMPTY, 2); SetIndexStyle(6, DRAW_HISTOGRAM,EMPTY, 2); SetIndexDrawBegin(0, SlowEMA); SetIndexDrawBegin(1, SlowEMA); IndicatorShortName("ZeroLag MACD Colored(" + FastEMA + "," + SlowEMA + "," + SignalEMA + ")"); SetIndexLabel(0, "MACD"); SetIndexLabel(1, "Signal"); SetIndexLabel(5, "MACD"); SetIndexLabel(6, "MACD"); odiseiff 2010.07.14 14:31 #7032 odiseif: 以下是最后的代码 对不起,我搞错了。.....,这是原文。 //+------------------------------------------------------------------+ //| ZeroLag MACD.mq4 | //| RD | //| marynarz15@wp.pl | //| Colored by SVK © 2009. | //+------------------------------------------------------------------+ #property copyright "RD" #property link "marynarz15@wp.pl" //---- #property indicator_separate_window #property indicator_buffers 7 #property indicator_color1 Black #property indicator_color2 Blue #property indicator_color3 Black #property indicator_color4 Black #property indicator_color5 Black #property indicator_color6 Lime #property indicator_color7 Red //---- input parameters extern int FastEMA = 12; extern int SlowEMA = 26; extern int SignalEMA = 9; //---- buffers double MACDBuffer[]; double SignalBuffer[]; double FastEMABuffer[]; double SlowEMABuffer[]; double SignalEMABuffer[]; double Buffer1[]; double Buffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorBuffers(7); SetIndexBuffer(0, MACDBuffer); SetIndexBuffer(1, SignalBuffer); SetIndexBuffer(2, FastEMABuffer); SetIndexBuffer(3, SlowEMABuffer); SetIndexBuffer(4, SignalEMABuffer); SetIndexBuffer(5, Buffer1); SetIndexBuffer(6, Buffer2); SetIndexStyle(0, DRAW_NONE); SetIndexStyle(1, DRAW_LINE,EMPTY); SetIndexStyle(2, DRAW_NONE); SetIndexStyle(3, DRAW_NONE); SetIndexStyle(4, DRAW_NONE); SetIndexStyle(5, DRAW_HISTOGRAM); SetIndexStyle(6, DRAW_HISTOGRAM); SetIndexDrawBegin(0, SlowEMA); SetIndexDrawBegin(1, SlowEMA); IndicatorShortName("ZeroLag MACD Colored(" + FastEMA + "," + SlowEMA + "," + SignalEMA + ")"); SetIndexLabel(0, "MACD"); SetIndexLabel(1, "Signal"); SetIndexLabel(5, "MACD"); SetIndexLabel(6, "MACD"); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit; double prev,current; int counted_bars = IndicatorCounted(); if(counted_bars < 0) return(-1); if(counted_bars > 0) counted_bars--; limit = Bars - counted_bars; double EMA, ZeroLagEMAp, ZeroLagEMAq; for(int i = 0; i < limit; i++) { FastEMABuffer[i] = 100.0*iMA(NULL, 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i); SlowEMABuffer[i] = 100.0*iMA(NULL, 0, SlowEMA, 0, MODE_EMA, PRICE_CLOSE, i); } for(i = 0; i < limit; i++) { EMA = iMAOnArray(FastEMABuffer, Bars, FastEMA, 0, MODE_EMA, i); ZeroLagEMAp = FastEMABuffer[i] + FastEMABuffer[i] - EMA; EMA = iMAOnArray(SlowEMABuffer, Bars, SlowEMA, 0, MODE_EMA, i); ZeroLagEMAq = SlowEMABuffer[i] + SlowEMABuffer[i] - EMA; MACDBuffer[i] = ZeroLagEMAp - ZeroLagEMAq; FastEMABuffer[i] = 0.0; SlowEMABuffer[i] = 0.0; } for(i = 0; i < limit; i++) SignalEMABuffer[i] = iMAOnArray(MACDBuffer, Bars, SignalEMA, 0, MODE_EMA, i); for(i = 0; i < limit; i++) { EMA = iMAOnArray(SignalEMABuffer, Bars, SignalEMA, 0, MODE_EMA, i); SignalBuffer[i] = SignalEMABuffer[i] + SignalEMABuffer[i] - EMA; SignalEMABuffer[i] = 0.0; } //---- dispatch values between 2 buffers bool up=true; for(i=limit-1; i>=0; i--) { current=MACDBuffer[i]; prev=MACDBuffer[i+1]; if(current>prev) up=true; if(current<prev) up=false; if(!up) { Buffer2[i]=current; Buffer1[i]=0.0; } else { Buffer1[i]=current; Buffer2[i]=0.0; } } return(0); } //+------------------------------------------------------------------+ Otomaru 2010.07.14 15:09 #7033 ToLik_SRGV: Sergey,我不完全理解你到底改了什么,因为在你提供的地址,你需要注册才能看到CCI 过滤器 的 源代码。 我只发现一个错误,iWPR 没有applied_price 参数,所以它是正确的。 Dimitry 2010.07.14 17:21 #7034 ToLik_SRGV: 原则上,没有任何区别。 试试我的函数,它很简单,把 "medj "和所需的拖网作为参数传递。 这个函数应该在任何地方开始调用,只要它从每一个tick开始就可以了。 很明显,这些订单必须有不同的滑块。 罗杰。 我明白了,你在函数的开头定义了一个变量ro,但你没有把它分配到任何地方,也就是说,它是0。 ToLik_SRGV,谢谢,它仍然不能正常工作。这意味着我有错误的地方来隐藏问题。总之谢谢你,我会自己想办法的。罗杰, infinity 2010.07.14 18:23 #7035 像往常一样在这里)))像往常一样向好心人致敬 ))) 有什么问题,我想不出来。全局变量的问题。我在指标代码中这样做。string Global="Global"; //имя глобальной переменной int param; // параметр глобальной переменной int init() { GlobalVariablesDeleteAll(NULL); return(0); } int deinit() { return(0); } //+------------------------------------------------------------------+ int start() { //привожу простой пример double bar1= iMA(Symbol(),PERIOD_M5,13,0,MODE_SMMA,PRICE_TYPICAL,0); double bar2= iOpen(Symbol(),PERIOD_M5,0); if (bar1>bar2){ param = 1; GlobalVariableSet(Global,param); } if (bar1<bar2){ param = 2; GlobalVariableSet(Global,param); } //---- return(0); }然后我试着用这段代码从专家顾问中获得一个全局变量的值string Global="Global"; int param; int start() { int i= GlobalVariableSet(Global,param); Print (i); // Здесь он мне и выводит всякую лабуду вида : 1279217736 return(0); } 我做错了什么?我本应得到1个或2个参数值,但我得到了.....为什么我必须在EA代码的开头再写一遍名称和变量? 它们似乎作为球状物存在,但没有它们,编译就无法进行。 Юрий 2010.07.14 18:29 #7036 我可以同时建立两个买入/卖出头寸吗? 我试了一下--我写了简单的代码,同时打开买入和卖出头寸,实时连接到欧元/美元,它们似乎都打开了。 但那是模拟账户和策略测试器,实时的情况呢,我的经纪公司会不会介意? 我以前从未尝试过,我不认为我开始了这种实验。 [删除] 2010.07.14 18:31 #7037 Infinity:... 你需要另一个函数来读取全局变量的值:)) int i= GlobalVariableGet(Global); Artyom Trishkin 2010.07.14 18:32 #7038 Lim1: 我可以同时建立两个买入/卖出头寸吗? 我试了一下--我写了简单的代码,同时打开买入和卖出头寸,实时连接到欧元/美元,它们似乎都打开了。 但那是模拟账户和策略测试器,实时的情况呢,我的经纪公司会不会介意? 我以前从未尝试过,我不认为我开始了这种实验。 打开...当他们让你...:) 一般来说--询问你的DC的支持团队 infinity 2010.07.14 18:57 #7039 ToLik_SRGV: 为了读取全局变量的值,我们需要另一个函数:))) 太清楚了,看书不看人,干活不干活,谢谢!继续前进)与问题。所有关于相同的全局变量。我在该指标中加入了以下条件。 string EUR="EURUSD"; //имя глобальной переменной string GBP="GBPUSD"; //имя глобальной переменной string valuta=""; int param; // параметр глобальной переменной int init() { GlobalVariablesDeleteAll(NULL); return(0); } int deinit() { return(0); } //+------------------------------------------------------------------+ int start() { string symb = Symbol(); //Здесь узнаю на какой валюте стоит индикатор if (symb==EUR) {valuta=EUR;} // здесь сравнивая ,в переменную занощу имя глобальной переменной if (symb==GBP) {valuta=GBP;} // которую следует использовать //привожу простой пример double bar1= iMA(Symbol(),PERIOD_M5,13,0,MODE_SMMA,PRICE_TYPICAL,0); double bar2= iOpen(Symbol(),PERIOD_M5,0); if (bar1>bar2){ param = 1; GlobalVariableSet(valuta,param); } // а здесь присваиваю параметр глобальной переменной if (bar1<bar2){ param = 2; GlobalVariableSet(valuta,param); } return(0); } 我想定义哪个全局变量应该被分配一个值,这取决于指标以什么货币为基础。 我理解在全局变量GlobalVariableSet(valuta,param)中,名称(valuta)应该包含上面分配给它的值 在专家顾问代码中再次调用全局变量 string valuta="valuta"。 int i= GlobalVariableGet(valuta); // 但我没有得到这个值,....也许这样就无法改变全局变量的名称? 我想我已经弄明白了--原来我不能用这个名字调用全局变量,但如果我注册字符串名称GlobalVariableGet("EURUSD")就可以了)。 igor 2010.07.14 19:08 #7040 首先,从帮助 doubleGlobalVariableGet( string name) 返回现有全局变量的值,如果有错误,则返回0。调用GetLastError()来获取错误信息。 你能看到GV的内容,但不能检索它? 1...697698699700701702703704705706707708709710711...1145 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
还有奥德修斯,在前面的例子中,你是这样的。
而现在是这样的。
你没有删除任何东西,还是我在幻想?以下是最后的代码
Sergey,我不完全理解你到底改了什么,因为在你提供的地址,你需要注册才能看到CCI 过滤器 的 源代码。
我只发现一个错误,iWPR 没有applied_price 参数,所以它是正确的。
原则上,没有任何区别。
试试我的函数,它很简单,把 "medj "和所需的拖网作为参数传递。
这个函数应该在任何地方开始调用,只要它从每一个tick开始就可以了。
很明显,这些订单必须有不同的滑块。
罗杰。
我明白了,你在函数的开头定义了一个变量ro,但你没有把它分配到任何地方,也就是说,它是0。
像往常一样在这里)))像往常一样向好心人致敬 )))
有什么问题,我想不出来。全局变量的问题。我在指标代码中这样做。
然后我试着用这段代码从专家顾问中获得一个全局变量的值
我做错了什么?我本应得到1个或2个参数值,但我得到了.....为什么我必须在EA代码的开头再写一遍名称和变量? 它们似乎作为球状物存在,但没有它们,编译就无法进行。我可以同时建立两个买入/卖出头寸吗?
我试了一下--我写了简单的代码,同时打开买入和卖出头寸,实时连接到欧元/美元,它们似乎都打开了。
但那是模拟账户和策略测试器,实时的情况呢,我的经纪公司会不会介意?
我以前从未尝试过,我不认为我开始了这种实验。
int i= GlobalVariableGet(Global);
我可以同时建立两个买入/卖出头寸吗?
我试了一下--我写了简单的代码,同时打开买入和卖出头寸,实时连接到欧元/美元,它们似乎都打开了。
但那是模拟账户和策略测试器,实时的情况呢,我的经纪公司会不会介意?
我以前从未尝试过,我不认为我开始了这种实验。
一般来说--询问你的DC的支持团队
为了读取全局变量的值,我们需要另一个函数:)))
太清楚了,看书不看人,干活不干活,谢谢!继续前进)与问题。所有关于相同的全局变量。我在该指标中加入了以下条件。
我想定义哪个全局变量应该被分配一个值,这取决于指标以什么货币为基础。
我理解在全局变量GlobalVariableSet(valuta,param)中,名称(valuta)应该包含上面分配给它的值
在专家顾问代码中再次调用全局变量
string valuta="valuta"。
int i= GlobalVariableGet(valuta); // 但我没有得到这个值,....也许这样就无法改变全局变量的名称?
我想我已经弄明白了--原来我不能用这个名字调用全局变量,但如果我注册字符串名称GlobalVariableGet("EURUSD")就可以了)。
首先,从帮助
返回现有全局变量的值,如果有错误,则返回0。调用GetLastError()来获取错误信息。
你能看到GV的内容,但不能检索它?