iCustom的详细解释 - 页 2 12345 新评论 Simon Gniadkowski 2012.03.19 18:18 #11 NewCoder47: 谢谢你,RaptorUK,然而,我遇到的困难是实际的编码。我是MQL4的新手,只做了几个月,还在学习中 - 所以我需要一个简单的编码解释,以及如何在指标中设置它。 你没看我写的吗?"不需要对指标做任何改变......EA只是在它需要的移位值上访问它需要的缓冲区。" Ubzen 2012.03.19 18:18 #12 dabbler: 不,你不能。我刚刚试过。如果你在逗号之间留出一个空位,省去一个参数,它就不会被编译。 我知道我应该纠正最后一句话。把参数 的逗号去掉。 Ubzen 2012.03.19 18:25 #13 ubzen: 我知道我应该纠正最后一句话。去掉参数中的逗号。 我只是在我的指标文件夹中把这个指标编译为TOR.mqh。然后我在专家文件夹中写了以下代码。void start(){ iCustom(Symbol(),0,"TOR",0,1); } 在没有传递任何参数 的情况下,它对我来说编译得很好。 dabbler 2012.03.19 18:30 #14 ubzen: 我只是在我的指标文件夹中把这个指标编译为TOR.mqh。然后我在专家文件夹中写了以下代码。 在没有传递任何参数的情况下,它编译 得很好。 但它是否真的有效? Ubzen 2012.03.19 18:31 #15 dabbler: 但它真的有用吗? 是的。一直如此。我说的是Extern Values。我猜你说的是缓冲器。 mclegg 2012.03.20 07:47 #16 谢谢你们的帮助,我明天晚上去看看,看能不能弄明白。 谢谢 mclegg 2012.03.22 01:34 #17 嘿,伙计们。我似乎仍然有一些困难。 以下是指标中的代码(我没有改变指标中的任何内容),我展示的是我认为相关的部分。请注意,这些代码在指标中并不是相互关联的,还有很多被我剥离的部分。 //---- indicator buffers double STDBuffer[]; double stddevma[]; //---- macd counted in the 1-st buffer for(int i=limit-1; i>=0; i--){ STDBuffer[i]=iStdDev(Pair1,0,StdDev.MA.Period, StdDev.MA.Shift, StdDev.MA.Method, StdDev.MA.Price, i); } for(i=limit-1; i>=0; i--){ stddevma[i] = iMAOnArray(STDBuffer, 0, MA.Fast.Period, MA.Fast.Shift, MA.Fast.Method, i); } 现在,这是EA中的代码 double FastMA = iMA(NULL,0,FastMAPeriod,0,0,0,0); double SlowMA = iMA(NULL,0,SlowMAPeriod,0,0,0,0); double STDBuffer = iCustom(Null,0,"SFX", , ,0,0); double stddevma = iCustom(Null,0,"SFX", , ,1,0); 我不明白的是参数 部分。我应该在这里输入什么值?这是我正在纠结的部分。我想在EA的下一步测试中使用STDBuffer和stddevma的值。例如,我是否包括Pair1(它在指标的其他地方被声明为当前图表)?因为它在iCustom的开头已经被声明为Null。 另外,是否有任何方法可以实际看到哪些值被发送到EA中? 如果有任何帮助,我将不胜感激。 谢谢 dabbler 2012.03.22 07:15 #18 NewCoder47: 以下是指标中的代码(我没有改变指标中的任何内容),我展示的是我认为相关的部分。请注意,这些代码在指标中并不是相互关联的,还有很多被我删除的部分。 现在,这是EA中的代码 我不明白的是参数部分。我应该在这里输入什么值?这是我正在纠结的部分。我想在EA的下一步测试中使用STDBuffer和stddevma的值。例如,我是否包括Pair1(它在指标的其他地方被声明为当前图表)?因为它在iCustom.Net的开头已经被声明为Null。 你没有 显示该指标的相关部分。你需要显示所有的extern 语句和它们出现的顺序。 你需要显示所有的SetIndexBuffer 语句。当你明白为什么需要显示这些时,你可能会明白你要做什么。 哦,你在iCustom 语句中的逗号之间不能有空白,它不会被编译。 试着重新阅读iCustom 的文档,考虑到它最初是俄文的。你必须仔细研究它。 mclegg 2012.03.22 08:22 #19 dabbler:你没有 显示指标的相关部分。你需要显示所有的extern 语句和它们出现的顺序。你需要显示所有的SetIndexBuffer 语句。当你明白为什么需要显示这些时,你可能会明白你要做什么。哦,你不能在iCustom 语句中的逗号之间出现空白,它将无法编译。试着重新阅读iCustom 文档,考虑到它最初是俄文的。你必须仔细研究它。谢谢Dabbler。我已经附上了完整的EA和指标。我已经阅读了iCustom的声明,除了参数 部分,其他都明白了,它非常模糊。由于我现在只是在测试,所以这个EA非常简陋。 谢谢。 迈克。 指标。 //---- indicator settings #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Yellow #property indicator_color2 Red #property indicator_width1 1 //---- indicator parameters extern string PairName = ""; // Leave blank for the pair of the chart, enter other pair name to compare correlated pairs extern int StdDev.MA.Period=12; // D1=20 extern int StdDev.MA.Shift=0; // extern int StdDev.MA.Method = 0; // 0=SMA 1=EMA 2=Smoothed 3=Linear Weighted extern int StdDev.MA.Price = 0; // 0 Close price, 1 Open price, 2 High price, 3 Low price, 4 Median price, (high+low)/2, 5 Typical price, (high+low+close)/3, 6 Weighted close price, (high+low+close+close)/4 extern int MA.Fast.Period = 3; extern int MA.Fast.Method = 2; // 0=SMA 1=EMA 2=Smoothed 3=Linear Weighted extern int MA.Fast.Shift = 0; extern bool CheckOncePerBar = true; int i, limit, counted_bars; static string Pair1; datetime CurrentTimeStamp; //---- indicator buffers double STDBuffer[]; double stddevma[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { IndicatorDigits(Digits+1); //---- drawing settings SetIndexStyle(0,DRAW_LINE); // SetIndexStyle(1,DRAW_LINE); //---- indicator buffers mapping SetIndexBuffer(0, STDBuffer); SetIndexBuffer(1, stddevma); if (PairName == "") Pair1 = Symbol(); else Pair1 = PairName; //---- name for DataWindow and indicator subwindow label IndicatorShortName("SFX TOR: "+Pair1+"("+StdDev.MA.Period+")"); SetIndexLabel(0,"StdDev"); SetIndexLabel(1,"StdDev MA"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Moving Averages Convergence/Divergence | //+------------------------------------------------------------------+ int start() { counted_bars=IndicatorCounted(); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- macd counted in the 1-st buffer for(int i=limit-1; i>=0; i--){ STDBuffer[i]=iStdDev(Pair1,0,StdDev.MA.Period, StdDev.MA.Shift, StdDev.MA.Method, StdDev.MA.Price, i); } for(i=limit-1; i>=0; i--){ stddevma[i] = iMAOnArray(STDBuffer, 0, MA.Fast.Period, MA.Fast.Shift, MA.Fast.Method, i); } //Execute on bar Open if( CheckOncePerBar == true ){ if( CurrentTimeStamp == Time[0] ) return( 0 ); } CurrentTimeStamp = Time [0]; //---- done return(0); } EA。 //+------------------------------------------------------------------+ //| Simple.mq4 | //| Mike Clegg | //| | //+------------------------------------------------------------------+ #property copyright "Mike Clegg" // External variables extern double LotSize = 1; extern int MagicNumber = 123; extern int FastMAPeriod = 12; extern int SlowMAPeriod = 26; // Global variables int BuyTicket; int SellTicket; // Start function int start() { // Moving averages double FastMA = iMA(NULL,0,FastMAPeriod,0,0,0,0); double SlowMA = iMA(NULL,0,SlowMAPeriod,0,0,0,0); double STDBuffer = iCustom(NULL,0,"SFX",0,0); double stddevma = iCustom(NULL,0,"SFX",1,0); // Buy order if(FastMA > SlowMA && BuyTicket == 0 && stddevma > STDBuffer) {PlaySound("alert.wav"); Alert(Symbol(),"All Crossing",Period(),"All Crossing"); } return(0); } 请忽略EA是在做指标的工作这一事实,正如我所说,我目前正在测试。 Tjipke de Vries 2012.03.22 08:43 #20 NewCoder47: 谢谢Dabbler。我已经附上了完整的EA和指标。我已经阅读了iCustom上的声明,除了参数部分,我理解所有的内容,它是非常模糊的。由于我现在只是在测试,所以该EA非常简陋。 谢谢。 迈克。 指标。 EA。 请忽略EA正在做指标的工作这一事实,正如我所说,我目前正在测试。 你在这里有一些很好的建议,但你仍然在挣扎....。 要知道iCustom是如何与你的指标一起工作的,你可以做一个helpEA或helpIndicator来检查指标的缓冲区内的内容。 这样你就能学到最多关于MT4中的检查命令。 阅读这里https://www.mql5.com/en/forum/138379 做一个这样的东西,你将学会如何在你想做的EA中使用它.....。 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢你,RaptorUK,然而,我遇到的困难是实际的编码。我是MQL4的新手,只做了几个月,还在学习中 - 所以我需要一个简单的编码解释,以及如何在指标中设置它。
不,你不能。我刚刚试过。如果你在逗号之间留出一个空位,省去一个参数,它就不会被编译。
我知道我应该纠正最后一句话。去掉参数中的逗号。
我只是在我的指标文件夹中把这个指标编译为TOR.mqh。然后我在专家文件夹中写了以下代码。
在没有传递任何参数 的情况下,它对我来说编译得很好。我只是在我的指标文件夹中把这个指标编译为TOR.mqh。然后我在专家文件夹中写了以下代码。
在没有传递任何参数的情况下,它编译 得很好。但它真的有用吗?
谢谢你们的帮助,我明天晚上去看看,看能不能弄明白。
谢谢
嘿,伙计们。我似乎仍然有一些困难。
以下是指标中的代码(我没有改变指标中的任何内容),我展示的是我认为相关的部分。请注意,这些代码在指标中并不是相互关联的,还有很多被我剥离的部分。
现在,这是EA中的代码
我不明白的是参数 部分。我应该在这里输入什么值?这是我正在纠结的部分。我想在EA的下一步测试中使用STDBuffer和stddevma的值。例如,我是否包括Pair1(它在指标的其他地方被声明为当前图表)?因为它在iCustom的开头已经被声明为Null。
另外,是否有任何方法可以实际看到哪些值被发送到EA中?
如果有任何帮助,我将不胜感激。
谢谢
以下是指标中的代码(我没有改变指标中的任何内容),我展示的是我认为相关的部分。请注意,这些代码在指标中并不是相互关联的,还有很多被我删除的部分。
现在,这是EA中的代码
我不明白的是参数部分。我应该在这里输入什么值?这是我正在纠结的部分。我想在EA的下一步测试中使用STDBuffer和stddevma的值。例如,我是否包括Pair1(它在指标的其他地方被声明为当前图表)?因为它在iCustom.Net的开头已经被声明为Null。
你没有 显示该指标的相关部分。你需要显示所有的extern 语句和它们出现的顺序。
你需要显示所有的SetIndexBuffer 语句。当你明白为什么需要显示这些时,你可能会明白你要做什么。
哦,你在iCustom 语句中的逗号之间不能有空白,它不会被编译。
试着重新阅读iCustom 的文档,考虑到它最初是俄文的。你必须仔细研究它。
你没有 显示指标的相关部分。你需要显示所有的extern 语句和它们出现的顺序。
你需要显示所有的SetIndexBuffer 语句。当你明白为什么需要显示这些时,你可能会明白你要做什么。
哦,你不能在iCustom 语句中的逗号之间出现空白,它将无法编译。
试着重新阅读iCustom 文档,考虑到它最初是俄文的。你必须仔细研究它。
谢谢Dabbler。我已经附上了完整的EA和指标。我已经阅读了iCustom的声明,除了参数 部分,其他都明白了,它非常模糊。由于我现在只是在测试,所以这个EA非常简陋。
谢谢。
迈克。
指标。
EA。
请忽略EA是在做指标的工作这一事实,正如我所说,我目前正在测试。
谢谢Dabbler。我已经附上了完整的EA和指标。我已经阅读了iCustom上的声明,除了参数部分,我理解所有的内容,它是非常模糊的。由于我现在只是在测试,所以该EA非常简陋。
谢谢。
迈克。
指标。
EA。
请忽略EA正在做指标的工作这一事实,正如我所说,我目前正在测试。
你在这里有一些很好的建议,但你仍然在挣扎....。
要知道iCustom是如何与你的指标一起工作的,你可以做一个helpEA或helpIndicator来检查指标的缓冲区内的内容。
这样你就能学到最多关于MT4中的检查命令。 阅读这里https://www.mql5.com/en/forum/138379
做一个这样的东西,你将学会如何在你想做的EA中使用它.....。