编码帮助 - 页 95 1...888990919293949596979899100101102...786 新评论 vito 2013.06.02 16:34 #941 亲爱的各位,这是我第一次写关于外汇的帖子,所以如果我说错了什么,请大家多多包涵...。 这个网站是学习外汇的最佳场所之一,我从几年前就开始阅读这个网站。我想把注意力放在这个链接上:codebase.mql4.com/5900 该EA是RUBBERBANDS_2 EA,由作者。 StJojo (2009.08.17 11:30).它的工作方式非常有趣,(经过最低限度的优化工作)在任何货币对 上。基本上,它可以作为一个(请允许我这样说)半自动的自动化系统。事实上,因为它在横盘市场上运行得很好,我发现当横盘市场的概率较高时,可以在新闻区间激活。因为我认为作者已经开放了代码,如果有人喜欢这个想法,我想增加一个变量,使其从某个小时/分钟开始工作,在某个时间/小时/分钟 "静止"(即:在当前时段结束时静止该EA)。这将更有利于 "预设 "EA后天的工作时间,相对于第二天的新闻。我附上了上述链接中的文件。 我还附上了 "forex_news_market_clock "指标,这是我用来读取图表上的新信息的指标。 感谢每个人在这个网站上所做的工作(当然还有整个网络上的工作...)。希望有人能提供帮助,非常感谢。 附加的文件: rubberbands_2.mq4 9 kb forex__news_market_clock.mq4 66 kb William Snyder 2013.06.03 00:07 #942 vitoingletto: 亲爱的各位,这是我第一次写关于外汇的帖子,所以如果我说错了什么,请大家多多包涵...。 这个网站是学习外汇的最佳场所之一,我从几年前就开始阅读。我想把注意力放在这个链接上:codebase.mql4.com/5900 该EA是RUBBERBANDS_2 EA,由作者。 StJojo (2009.08.17 11:30).它的工作方式非常有趣,(经过最低限度的优化工作)在任何货币对上。基本上,它可以作为一个(请允许我这样说)半自动的自动化系统。事实上,因为它在横盘市场上运行得很好,我发现当横盘市场的概率较高时,可以在新闻区间激活。因为我认为作者已经开放了代码,如果有人喜欢这个想法,我想增加一个变量,使其从某个小时/分钟开始工作,在某个时间/小时/分钟 "静止"(即:在当前时段结束时静止该EA)。这将更有利于 "预设 "EA后天的工作时间,相对于第二天的新闻。我附上了上述链接中的文件。 我还附上了 "forex_ news_market_clock "指标,这是我用来读取图表上的新闻的指标。 感谢大家在这个网站(当然还有整个网络......)上的工作。希望有人能提供帮助,非常感谢。 你好,Vitoingletto。 谢谢你的EA,添加了一个时间过滤器和周五 收盘功能,还有一个神奇的数字,帮助EA在一定程度上区分订单。 附加的文件: rubberbands_2_timefilter.mq4 10 kb drfeelgood1989 2013.06.04 12:35 #943 你好... 不知道你能不能在代码中加入直接一次性导出数据的功能(m1、m5、m30、m15、h1、h4、d1......),显然是在不同的文件中。目前,你必须要启动它很多次......(对于每个tmeframe)。 我将大大节省导出数据的时间。 你可以在你的代码中插入这个函数吗?一个想法可能类似于这个附件中的脚本(Period_converter_auto - MQL4 Code Base),它将数据全部转化为一个volta.Si可以在专家中播放吗? 谢谢 附加的文件: period_converter_auto.mq4 5 kb indicatorexportea.mq4 2 kb Mladen Rakic 2013.06.04 20:21 #944 dr.feelgood1989: 你好...不知道你能不能在代码中加入直接一次性导出数据的功能(m1、m5、m30、m15、h1、h4、d1......),显然是放在不同的文件中。目前,你必须要启动它很多次......(对于每个tmeframe)。 我将大大节省导出数据的时间。 你可以在你的代码中插入这个函数吗?一个想法可能类似于这个附件中的脚本(Period_converter_auto - MQL4 Code Base),它将数据全部转化为一个volta.Si可以在专家中播放吗? 谢谢 dr.feelgood1989 使用这个,并简单地将其附加到您希望导出的所有时间框架。它将为你看的每个时间段制作一个名为符号+"_"+时间框架的文件。你可以把它作为你自定义指标导出的模板。 附加的文件: indicatorexportea_2.mq4 2 kb drfeelgood1989 2013.06.04 21:34 #945 谢谢你的回答...Mladen 实际上我已经是这样了。我发布的脚本(参考例子)对所有的时间段(转换)都是一次完成工作。 专家从她修改的 "重写 "一个单一的时间框架(以区分文件),当它被用于单一时间 我想知道,如果启动一个单一的专家是重写所有其他的时间框架(例如:EA1M在测试器上启动,并且文件也写在其他时间框架M5,M15...) 谢谢 :) [删除] 2013.06.05 08:19 #946 mladen: pgtips,你的主循环是什么样子的(或者贴出你试图这样做的代码)? PS: 你必须改变iOpen()和iClose()的最后一个参数,以指向所选条形的正确日期。 你好,Mladen。 我被这个问题困住了,所以想试试其他的方法。 经过几天的搜索,我找到了这个附件中的指标,它与我所需要的很接近,但它被做得不同。 它显示的是当前的蜡烛(来自日线),但没有iopen/close变量可以选择显示一天后的蜡烛,即移位-1。 你能告诉我如何使它有一个回溯X天的转变吗。? 因此,如果前一天的条形图是红色的,那么当前的方框就是红色的,如果前一天是绿色的,那么当前方框就是绿色的。 我可以在此基础上叠加突破箱指标,但如果这个指标能有时间限制,那就真的太好了。 我知道你很忙,而且你的时间是免费的,但如果你能帮助我,我将非常感激。 非常感谢 PG 附加的文件: shadowcandles_v2.0.mq4 4 kb [删除] 2013.06.06 12:46 #947 你好。 我仍在努力解决这个问题。 在附件中,我已经设法使用枢轴指标,根据前一天的收盘价,即前一天的绿色或红色,让我得到每天的颜色变化。 现在我需要做一个矩形,并根据我想看到的显示时间(上午11点到下午17点)来填充它,高点和低点是这段时间内的任何结果。 我设置// ObjectCreate("Rectangle",OBJ_RECTANGLE, 0, Time[periodBegin], Low[1], Time[periodEnd], High[1]) 。 但是得到了错误,根本没有显示。 extern int periodBegin = 11; /11:00 am extern int periodEnd = 17; // 17:00 pm 我设置了extern bool Plot_rectangles=true;所以它 "应该 "为每一天绘制一些东西。 我在这里错过了什么? 谢谢你 PG 附加的文件: allpivots_v1-7wtime.mq4 8 kb Coding help CatFx50 Buy/Sell Signal Indicators [删除] 2013.06.09 18:01 #948 我想我知道我问题的答案,但是......还是想确认一下 a. 指标是较高的时间框架 b. 是当前的时间 框架。 比如我想用a.作为基础趋势b.作为进场,这能做到吗? Mladen Rakic 2013.06.09 20:37 #949 mtuppers: 我想我知道我问题的答案,但是......还是想确认一下a. 指标是较高的时间框架 b. 是当前时间框架。 比如我想用a作为基础趋势b作为入口,这能做到吗? 是的,你可以。 只需在timeFrame参数中用更高的时间框架调用a,就可以了。为了避免多时间框架EA的回测陷阱,请在多时间框架指标上使用封闭条(指数1而不是0),否则你会得到不切实际的好结果,因为在回测中,metatrader会调用当前时间 框架以外的其他时间框架。 marley60 2013.06.11 10:34 #950 你好。 我希望你能帮我解决这个问题。我想让窗口二中的点(箭头;水蓝色和黄色)在窗口一(主图表窗口)的收盘价(或买入信号的高点/卖出信号 的低点)上显示为点(箭头)。我试了好几个小时,但我永远不会成为一个程序员;-) #属性 indicator_separate_window #属性 indicator_minimum -100.0 #属性 indicator_maximum 100.0 #属性 indicator_levelcolor 石板灰 #属性 indicator_levelstyle 1 #属性 indicator_buffers 8 #属性 indicator_color1 Lime #属性 indicator_color2 红色 #属性指示器_颜色3 黑色 #属性 indicator_color4 黑色 #属性指示器_color5 黑色 #财产指示器_颜色6 黑色 #属性指示器_color7 水 #属性指示器_颜色8 黄色 #属性指示器宽度1 1 #属性指示器_level1 60.0 #属性指示器宽度2 1 #属性指示器_level2 50.0 #属性 Indicator_level3 -50.0 #属性 Indicator_level4 -60.0 外部int WavePeriod = 10; extern int AvgPeriod = 21; extern bool SoundAlert = FALSE; Extern bool EmailAlert = FALSE; double g_ibuf_92[]; double g_ibuf_96[]; double g_ibuf_100[]; double g_ibuf_104[]; 双份g_ibuf_108[]。 双份g_ibuf_112[]。 双份g_ibuf_116[]。 双份g_ibuf_120[]。 int gi_124 = -50。 int gi_128 = 50; int gi_132; int init() { IndicatorShortName("TrendWave")。 SetIndexBuffer(0, g_ibuf_100); SetIndexLabel(0, "ESA"); SetIndexStyle(0, DRAW_NONE); SetIndexDrawBegin(0, 0); SetIndexBuffer(1, g_ibuf_112); SetIndexLabel(1, "DD Values")。 SetIndexStyle(1, DRAW_NONE); SetIndexDrawBegin(1, 0); SetIndexBuffer(2, g_ibuf_104); SetIndexLabel(2, "DD"); SetIndexStyle(2, DRAW_NONE); SetIndexDrawBegin(2, 0); SetIndexBuffer(3, g_ibuf_108); SetIndexLabel(3, "CI"); SetIndexStyle(3, DRAW_NONE); SetIndexDrawBegin(3, 0); SetIndexBuffer(4, g_ibuf_92); SetIndexLabel(4, "Bull"); SetIndexStyle(4, DRAW_LINE, STYLE_SOLID, 1, Lime); SetIndexDrawBegin(4, 0); SetIndexBuffer(5, g_ibuf_96); SetIndexLabel(5, "Bear"); SetIndexStyle(5, DRAW_LINE, STYLE_SOLID, 1, Red); SetIndexDrawBegin(5, 0); SetIndexBuffer(6, g_ibuf_116); SetIndexLabel(6, "Buy Dot"); SetIndexStyle(6, DRAW_ARROW, STYLE_SOLID, 2, Aqua)。 SetIndexArrow(6, 108); SetIndexDrawBegin(6, 0); SetIndexBuffer(7, g_ibuf_120); SetIndexLabel(7, "Sell Dot"); SetIndexStyle(7, DRAW_ARROW, STYLE_SOLID, 2, Yellow); SetIndexArrow(7, 108); SetIndexDrawBegin(7, 0); ArrayResize(g_ibuf_100, Bars)。 ArrayResize(g_ibuf_112, Bars); ArrayResize(g_ibuf_104, Bars); ArrayResize(g_ibuf_108, Bars)。 ArrayResize(g_ibuf_92, Bars); ArrayResize(g_ibuf_96, Bars); ArrayResize(g_ibuf_116, Bars); ArrayResize(g_ibuf_120, Bars)。 返回(0)。 } int start() { double l_ima_on_arr_0; int li_12 = IndicatorCounted(); 如果 (li_12 < 0) 返回 (-1); 如果(li_12 > 0)li_12--。 int li_8 = Bars - li_12; for (int li_16 = li_8; li_16 > 0; li_16--) { g_ibuf_100[li_16] = iMA(NULL, 0, WavePeriod, 0, MODE_EMA, PRICE_TYPICAL, li_16)。 ArraySetAsSeries(g_ibuf_100, TRUE)。 } for (li_16 = li_8; li_16 > 0; li_16--) { g_ibuf_112[li_16] = MathAbs((iHigh(NULL, 0, li_16) + iClose(NULL, 0, li_16) + iLow(NULL, 0, li_16) )/ 3.0 - g_ibuf_100[li_16])。 ArraySetAsSeries(g_ibuf_112, TRUE)。 } for (li_16 = li_8; li_16 > 0; li_16--) { l_ima_on_arr_0 = iMAOnArray(g_ibuf_112, 0, WavePeriod, 0, MODE_EMA, li_16)。 g_ibuf_104[li_16] = l_ima_on_arr_0; ArraySetAsSeries(g_ibuf_104, TRUE)。 } for (li_16 = li_8; li_16 > 0; li_16--) { if (g_ibuf_104[li_16] > 0.0) g_ibuf_108[li_16] = ((iHigh(NULL, 0, li_16) + iClose(NULL, 0, li_16) + iLow(NULL, 0, li_16) )/ 3.0 - g_ibuf_100[li_16])/ (0.015 * g_ibuf_104[li_16])。 否则g_ibuf_108[li_16] = 0; ArraySetAsSeries(g_ibuf_108, TRUE)。 } for (li_16 = li_8; li_16 > 0; li_16--) { l_ima_on_arr_0 = iMAOnArray(g_ibuf_108, 0, AvgPeriod, 0, MODE_EMA, li_16) 。 g_ibuf_92[li_16] = l_ima_on_arr_0; ArraySetAsSeries(g_ibuf_92, TRUE)。 } for (li_16 = li_8; li_16 > 0; li_16--) { l_ima_on_arr_0 = iMAOnArray(g_ibuf_92, 0, 4, 0, MODE_SMA, li_16)。 g_ibuf_96[li_16] = l_ima_on_arr_0; ArraySetAsSeries(g_ibuf_96, TRUE)。 } for (li_16 = li_8; li_16 > 0; li_16--) { if (g_ibuf_92[li_16] >= g_ibuf_96[li_16] && g_ibuf_92[li_16 + 1] <= g_ibuf_96[li_16 + 1] && g_ibuf_92[li_16] < gi_124) { g_ibuf_116[li_16] = g_ibuf_92[li_16]; SendAlert("buy")。 } else g_ibuf_116[li_16] = -1000; 如果(g_ibuf_92[li_16] = g_ibuf_96[li_16 + 1] && g_ibuf_92[li_16] > gi_128) { g_ibuf_120[li_16] = g_ibuf_96[li_16]; SendAlert("卖出")。 } else g_ibuf_120[li_16] = -1000; } 返回(0)。 } void SendAlert(string as_0) { 如果(Time[0] != gi_132) { 如果(SoundAlert) { 如果(as_0 == "buy") Alert(Symbol() + " => " + TimeToStr(TimeCurrent() )+ " 买入")。 如果(as_0 == "卖出") Alert(Symbol() + " => " + TimeToStr(TimeCurrent() ) + " 卖出")+ "卖出")。 } 如果(EmailAlert) { 如果(as_0 == "buy") SendMail("TrendWave Alert", Symbol() + " => " + TimeToStr(TimeCurrent())+ " 买入")。 如果(as_0 == "卖出") SendMail("TrendWave Alert", Symbol() + " => " + TimeToStr(TimeCurrent())+ "卖出")。 } gi_132 = Time[0]; } } Coding help 大家好,请教一下各位大侠 请高手将这个指标加个弹窗和邮件报警! 1...888990919293949596979899100101102...786 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
亲爱的各位,这是我第一次写关于外汇的帖子,所以如果我说错了什么,请大家多多包涵...。
这个网站是学习外汇的最佳场所之一,我从几年前就开始阅读这个网站。我想把注意力放在这个链接上:codebase.mql4.com/5900
该EA是RUBBERBANDS_2 EA,由作者。 StJojo (2009.08.17 11:30).它的工作方式非常有趣,(经过最低限度的优化工作)在任何货币对 上。基本上,它可以作为一个(请允许我这样说)半自动的自动化系统。事实上,因为它在横盘市场上运行得很好,我发现当横盘市场的概率较高时,可以在新闻区间激活。因为我认为作者已经开放了代码,如果有人喜欢这个想法,我想增加一个变量,使其从某个小时/分钟开始工作,在某个时间/小时/分钟 "静止"(即:在当前时段结束时静止该EA)。这将更有利于 "预设 "EA后天的工作时间,相对于第二天的新闻。我附上了上述链接中的文件。
我还附上了 "forex_news_market_clock "指标,这是我用来读取图表上的新信息的指标。
感谢每个人在这个网站上所做的工作(当然还有整个网络上的工作...)。希望有人能提供帮助,非常感谢。
亲爱的各位,这是我第一次写关于外汇的帖子,所以如果我说错了什么,请大家多多包涵...。
这个网站是学习外汇的最佳场所之一,我从几年前就开始阅读。我想把注意力放在这个链接上:codebase.mql4.com/5900
该EA是RUBBERBANDS_2 EA,由作者。 StJojo (2009.08.17 11:30).它的工作方式非常有趣,(经过最低限度的优化工作)在任何货币对上。基本上,它可以作为一个(请允许我这样说)半自动的自动化系统。事实上,因为它在横盘市场上运行得很好,我发现当横盘市场的概率较高时,可以在新闻区间激活。因为我认为作者已经开放了代码,如果有人喜欢这个想法,我想增加一个变量,使其从某个小时/分钟开始工作,在某个时间/小时/分钟 "静止"(即:在当前时段结束时静止该EA)。这将更有利于 "预设 "EA后天的工作时间,相对于第二天的新闻。我附上了上述链接中的文件。
我还附上了 "forex_ news_market_clock "指标,这是我用来读取图表上的新闻的指标。
感谢大家在这个网站(当然还有整个网络......)上的工作。希望有人能提供帮助,非常感谢。你好,Vitoingletto。
谢谢你的EA,添加了一个时间过滤器和周五 收盘功能,还有一个神奇的数字,帮助EA在一定程度上区分订单。
你好...
不知道你能不能在代码中加入直接一次性导出数据的功能(m1、m5、m30、m15、h1、h4、d1......),显然是在不同的文件中。目前,你必须要启动它很多次......(对于每个tmeframe)。
我将大大节省导出数据的时间。
你可以在你的代码中插入这个函数吗?一个想法可能类似于这个附件中的脚本(Period_converter_auto - MQL4 Code Base),它将数据全部转化为一个volta.Si可以在专家中播放吗?
谢谢
你好...
不知道你能不能在代码中加入直接一次性导出数据的功能(m1、m5、m30、m15、h1、h4、d1......),显然是放在不同的文件中。目前,你必须要启动它很多次......(对于每个tmeframe)。
我将大大节省导出数据的时间。
你可以在你的代码中插入这个函数吗?一个想法可能类似于这个附件中的脚本(Period_converter_auto - MQL4 Code Base),它将数据全部转化为一个volta.Si可以在专家中播放吗?
谢谢dr.feelgood1989
使用这个,并简单地将其附加到您希望导出的所有时间框架。它将为你看的每个时间段制作一个名为符号+"_"+时间框架的文件。你可以把它作为你自定义指标导出的模板。
谢谢你的回答...Mladen
实际上我已经是这样了。我发布的脚本(参考例子)对所有的时间段(转换)都是一次完成工作。
专家从她修改的 "重写 "一个单一的时间框架(以区分文件),当它被用于单一时间
我想知道,如果启动一个单一的专家是重写所有其他的时间框架(例如:EA1M在测试器上启动,并且文件也写在其他时间框架M5,M15...)
谢谢 :)
pgtips,
你的主循环是什么样子的(或者贴出你试图这样做的代码)?
PS: 你必须改变iOpen()和iClose()的最后一个参数,以指向所选条形的正确日期。你好,Mladen。
我被这个问题困住了,所以想试试其他的方法。
经过几天的搜索,我找到了这个附件中的指标,它与我所需要的很接近,但它被做得不同。
它显示的是当前的蜡烛(来自日线),但没有iopen/close变量可以选择显示一天后的蜡烛,即移位-1。
你能告诉我如何使它有一个回溯X天的转变吗。? 因此,如果前一天的条形图是红色的,那么当前的方框就是红色的,如果前一天是绿色的,那么当前方框就是绿色的。
我可以在此基础上叠加突破箱指标,但如果这个指标能有时间限制,那就真的太好了。
我知道你很忙,而且你的时间是免费的,但如果你能帮助我,我将非常感激。
非常感谢
PG
你好。
我仍在努力解决这个问题。
在附件中,我已经设法使用枢轴指标,根据前一天的收盘价,即前一天的绿色或红色,让我得到每天的颜色变化。
现在我需要做一个矩形,并根据我想看到的显示时间(上午11点到下午17点)来填充它,高点和低点是这段时间内的任何结果。
我设置//
ObjectCreate("Rectangle",OBJ_RECTANGLE, 0, Time[periodBegin], Low[1], Time[periodEnd], High[1]) 。
但是得到了错误,根本没有显示。
extern int periodBegin = 11; /11:00 am
extern int periodEnd = 17; // 17:00 pm
我设置了extern bool Plot_rectangles=true;所以它 "应该 "为每一天绘制一些东西。
我在这里错过了什么?
谢谢你
PG
我想我知道我问题的答案,但是......还是想确认一下
a. 指标是较高的时间框架
b. 是当前的时间 框架。
比如我想用a.作为基础趋势b.作为进场,这能做到吗?
我想我知道我问题的答案,但是......还是想确认一下
a. 指标是较高的时间框架
b. 是当前时间框架。
比如我想用a作为基础趋势b作为入口,这能做到吗?是的,你可以。
只需在timeFrame参数中用更高的时间框架调用a,就可以了。为了避免多时间框架EA的回测陷阱,请在多时间框架指标上使用封闭条(指数1而不是0),否则你会得到不切实际的好结果,因为在回测中,metatrader会调用当前时间 框架以外的其他时间框架。
你好。
我希望你能帮我解决这个问题。我想让窗口二中的点(箭头;水蓝色和黄色)在窗口一(主图表窗口)的收盘价(或买入信号的高点/卖出信号 的低点)上显示为点(箭头)。我试了好几个小时,但我永远不会成为一个程序员;-)
#属性 indicator_separate_window
#属性 indicator_minimum -100.0
#属性 indicator_maximum 100.0
#属性 indicator_levelcolor 石板灰
#属性 indicator_levelstyle 1
#属性 indicator_buffers 8
#属性 indicator_color1 Lime
#属性 indicator_color2 红色
#属性指示器_颜色3 黑色
#属性 indicator_color4 黑色
#属性指示器_color5 黑色
#财产指示器_颜色6 黑色
#属性指示器_color7 水
#属性指示器_颜色8 黄色
#属性指示器宽度1 1
#属性指示器_level1 60.0
#属性指示器宽度2 1
#属性指示器_level2 50.0
#属性 Indicator_level3 -50.0
#属性 Indicator_level4 -60.0
外部int WavePeriod = 10;
extern int AvgPeriod = 21;
extern bool SoundAlert = FALSE;
Extern bool EmailAlert = FALSE;
double g_ibuf_92[];
double g_ibuf_96[];
double g_ibuf_100[];
double g_ibuf_104[];
双份g_ibuf_108[]。
双份g_ibuf_112[]。
双份g_ibuf_116[]。
双份g_ibuf_120[]。
int gi_124 = -50。
int gi_128 = 50;
int gi_132;
int init() {
IndicatorShortName("TrendWave")。
SetIndexBuffer(0, g_ibuf_100);
SetIndexLabel(0, "ESA");
SetIndexStyle(0, DRAW_NONE);
SetIndexDrawBegin(0, 0);
SetIndexBuffer(1, g_ibuf_112);
SetIndexLabel(1, "DD Values")。
SetIndexStyle(1, DRAW_NONE);
SetIndexDrawBegin(1, 0);
SetIndexBuffer(2, g_ibuf_104);
SetIndexLabel(2, "DD");
SetIndexStyle(2, DRAW_NONE);
SetIndexDrawBegin(2, 0);
SetIndexBuffer(3, g_ibuf_108);
SetIndexLabel(3, "CI");
SetIndexStyle(3, DRAW_NONE);
SetIndexDrawBegin(3, 0);
SetIndexBuffer(4, g_ibuf_92);
SetIndexLabel(4, "Bull");
SetIndexStyle(4, DRAW_LINE, STYLE_SOLID, 1, Lime);
SetIndexDrawBegin(4, 0);
SetIndexBuffer(5, g_ibuf_96);
SetIndexLabel(5, "Bear");
SetIndexStyle(5, DRAW_LINE, STYLE_SOLID, 1, Red);
SetIndexDrawBegin(5, 0);
SetIndexBuffer(6, g_ibuf_116);
SetIndexLabel(6, "Buy Dot");
SetIndexStyle(6, DRAW_ARROW, STYLE_SOLID, 2, Aqua)。
SetIndexArrow(6, 108);
SetIndexDrawBegin(6, 0);
SetIndexBuffer(7, g_ibuf_120);
SetIndexLabel(7, "Sell Dot");
SetIndexStyle(7, DRAW_ARROW, STYLE_SOLID, 2, Yellow);
SetIndexArrow(7, 108);
SetIndexDrawBegin(7, 0);
ArrayResize(g_ibuf_100, Bars)。
ArrayResize(g_ibuf_112, Bars);
ArrayResize(g_ibuf_104, Bars);
ArrayResize(g_ibuf_108, Bars)。
ArrayResize(g_ibuf_92, Bars);
ArrayResize(g_ibuf_96, Bars);
ArrayResize(g_ibuf_116, Bars);
ArrayResize(g_ibuf_120, Bars)。
返回(0)。
}
int start() {
double l_ima_on_arr_0;
int li_12 = IndicatorCounted();
如果 (li_12 < 0) 返回 (-1);
如果(li_12 > 0)li_12--。
int li_8 = Bars - li_12;
for (int li_16 = li_8; li_16 > 0; li_16--) {
g_ibuf_100[li_16] = iMA(NULL, 0, WavePeriod, 0, MODE_EMA, PRICE_TYPICAL, li_16)。
ArraySetAsSeries(g_ibuf_100, TRUE)。
}
for (li_16 = li_8; li_16 > 0; li_16--) {
g_ibuf_112[li_16] = MathAbs((iHigh(NULL, 0, li_16) + iClose(NULL, 0, li_16) + iLow(NULL, 0, li_16) )/ 3.0 - g_ibuf_100[li_16])。
ArraySetAsSeries(g_ibuf_112, TRUE)。
}
for (li_16 = li_8; li_16 > 0; li_16--) {
l_ima_on_arr_0 = iMAOnArray(g_ibuf_112, 0, WavePeriod, 0, MODE_EMA, li_16)。
g_ibuf_104[li_16] = l_ima_on_arr_0;
ArraySetAsSeries(g_ibuf_104, TRUE)。
}
for (li_16 = li_8; li_16 > 0; li_16--) {
if (g_ibuf_104[li_16] > 0.0) g_ibuf_108[li_16] = ((iHigh(NULL, 0, li_16) + iClose(NULL, 0, li_16) + iLow(NULL, 0, li_16) )/ 3.0 - g_ibuf_100[li_16])/ (0.015 * g_ibuf_104[li_16])。
否则g_ibuf_108[li_16] = 0;
ArraySetAsSeries(g_ibuf_108, TRUE)。
}
for (li_16 = li_8; li_16 > 0; li_16--) {
l_ima_on_arr_0 = iMAOnArray(g_ibuf_108, 0, AvgPeriod, 0, MODE_EMA, li_16) 。
g_ibuf_92[li_16] = l_ima_on_arr_0;
ArraySetAsSeries(g_ibuf_92, TRUE)。
}
for (li_16 = li_8; li_16 > 0; li_16--) {
l_ima_on_arr_0 = iMAOnArray(g_ibuf_92, 0, 4, 0, MODE_SMA, li_16)。
g_ibuf_96[li_16] = l_ima_on_arr_0;
ArraySetAsSeries(g_ibuf_96, TRUE)。
}
for (li_16 = li_8; li_16 > 0; li_16--) {
if (g_ibuf_92[li_16] >= g_ibuf_96[li_16] && g_ibuf_92[li_16 + 1] <= g_ibuf_96[li_16 + 1] && g_ibuf_92[li_16] < gi_124) {
g_ibuf_116[li_16] = g_ibuf_92[li_16];
SendAlert("buy")。
} else g_ibuf_116[li_16] = -1000;
如果(g_ibuf_92[li_16] = g_ibuf_96[li_16 + 1] && g_ibuf_92[li_16] > gi_128) {
g_ibuf_120[li_16] = g_ibuf_96[li_16];
SendAlert("卖出")。
} else g_ibuf_120[li_16] = -1000;
}
返回(0)。
}
void SendAlert(string as_0) {
如果(Time[0] != gi_132) {
如果(SoundAlert) {
如果(as_0 == "buy") Alert(Symbol() + " => " + TimeToStr(TimeCurrent() )+ " 买入")。
如果(as_0 == "卖出") Alert(Symbol() + " => " + TimeToStr(TimeCurrent() ) + " 卖出")+ "卖出")。
}
如果(EmailAlert) {
如果(as_0 == "buy") SendMail("TrendWave Alert", Symbol() + " => " + TimeToStr(TimeCurrent())+ " 买入")。
如果(as_0 == "卖出") SendMail("TrendWave Alert", Symbol() + " => " + TimeToStr(TimeCurrent())+ "卖出")。
}
gi_132 = Time[0];
}
}