第13课 - 你的第一个专家顾问(第一部分) - 页 5 123456 新评论 Mladen Rakic 2013.11.06 21:24 #41 KelchMonteiro: 真的很感谢mladen!我现在看到了。 我也是这么做的。看看吧。 for_a_new_life-1.ex4 for_a_new_life-1_1.mq4 我正在测试我的版本,也将测试你的版本。 如果这个指标是正确的,我们做了一些伟大的事情来捕捉反转点。 这是因为两条移动平均线之差除以2倍力,可以更敏感地显示价格在趋势中的反转。用另一个边界指标测试它,我想你会喜欢的。 一些图片。 我很高兴,因为这是我对论坛的第一次贡献。没有你们的帮助,我是做不到的。 非常感谢Mladen! 凯尔奇 只做了一个改变:改变方向。这样看来,它显示的是一个更合理的数值。也可以这样试试 for_a_new_life-1.01.mq4 附加的文件: for_a_new_life-1.01.mq4 2 kb dovatrader 2013.11.08 08:57 #42 嗨,Mladen。 我从icustom制作了EA,编译后没有错误和警告,但我在回测时 完全没有OP? 我可以把我的EA发布在这个主题上吗,我想让你帮助我解决这个问题。 谢谢。 致敬 Mladen Rakic 2013.11.08 13:50 #43 Dova: 嗨,Mladen。我从icustom制作了EA,编译后没有错误和警告,但我在回测时完全没有OP? 我可以把我的EA发布在这个主题上吗?我希望你能帮助我解决这个问题。 谢谢。 致以最崇高的敬意 多瓦 把它贴出来,这样就会有人看一下了 Kelch Monteiro 2013.11.10 00:15 #44 mladen: 凯尔奇只做了一个改变:改变它的方向。似乎这样显示的数值更有逻辑性。也试一下这种方式 for_a_new_life-1.01.mq4 谢谢mladen! dovatrader 2013.11.10 07:01 #45 这是我的试用版... 这个EA在编译时没有错误或警告,但在BT时没有OP。 我希望这个EA能从之前的OP中逆转。 如果位置已经是买入,那么下一个蜡烛的卖出箭头会出现,自动将位置从买入转为卖出,反之亦然。 也可以添加止损。 对不起,我的英语不好 pfi.ex4ea_pfi.mq4 谢谢你 附加的文件: pfi.ex4 6 kb ea_pfi.mq4 4 kb Mladen Rakic 2013.11.10 18:34 #46 Dova: 这里是我的试用版...这个EA在编译时没有错误或警告,但在BT时没有OP。 我希望这个EA能从之前的OP中逆转。 如果位置已经是买入,那么下一个蜡烛的卖出箭头会出现,自动将位置从买入转为卖出,反之亦然。 也可以添加止损。 对不起,我的英语不好 pfi.ex4ea_pfi.mq4 谢谢你 为了让阅读该帖子的人更清楚:"从OP逆转 "或 "BT时没有OP "到底是什么意思? dovatrader 2013.11.11 03:49 #47 mladen: 为了让阅读该帖子的人更清楚:"从OP逆转 "或 "BT时没有OP "到底是什么意思? 我是说OP=开仓,BT=回测。 在我回测之后,没有开仓。 当已经有开仓买入,然后下一个蜡烛卖出箭头/信号出现,自动关闭多头头寸,打开空头头寸,反之亦然(自动反转头寸)。 我希望我的解释能让你明白。 谢谢你 djiwenk maryanto 2013.11.27 14:22 #48 向所有的人问好 .... 请原谅,如果错误的地方,因为我的新成员。 请其支持大师的编码。 要将这个指标编码到EA中。 我想让EA能够按照我的要求工作,即。 1.当价格触及TL1线时自动打开买入。 2.当价格触及TL2线时自动打开卖出 3.当价格超过TL2线时自动打开买入 4.当价格超过TL1线时自动卖出。 5.当价格触及TL2线时,关闭自动买入,直接打开卖出。 6.当价格触及TL1线时自动卖出,直接开盘买入 7.Nomor 3和4手动关闭(没有TrailingStop)。 8.SL 50点,手数为0.1。 9.所有货币对的时间框架为H4。 非常感谢你 / / + ----------------------------------------------- ------------------- + / / | SHI_Channel_true.mq4 | / / | Copyright © 2004 , Shurka & Kevin ! / / | | / / + ----------------------------------------------- ------------------- + #属性版权 " Copyright © 2004 , Shurka & Kevin " #属性链接" " / / ---- #属性 indicator_chart_window # property indicator_buffers 1 #属性 indicator_color1 红色 ExtMapBuffer1 double [ ] ; / / ---- 输入参数 extern int AllBars = 240 ; BarsForFract extern int = 0 ; CurrentBar int = 0 ; double Step = 0 。 int B1 = -1 , B2 = -1 。 UpDown int = 0 。 双P1 = 0 , P2 = 0 , PP = 0 。 int i = 0 , AB = 300 , BFF = 0 。 ishift int = 0 。 双重iprice = 0 。 数据时间 T1 , T2 ; / / + ----------------------------------------------- ------------------- + / / | 自定义指标初始化函数 | / / + ----------------------------------------------- ------------------- + int init ( ) { / / ---- 指标 SetIndexStyle ( 0 , DRAW_ARROW ) 。 SetIndexArrow ( 0 , 164 ) 。 SetIndexBuffer ( 0 , ExtMapBuffer1 ) 。 SetIndexEmptyValue ( 0 , 0.0 ) 。 / / ---- 返回 ( 0 ) 。 } / / + ----------------------------------------------- ------------------- + / / |Custor指示器函数的去初始化 | / / + ----------------------------------------------- ------------------- + deinit int ( ) { ObjectDelete ( " TL1 " ) 。 ObjectDelete ( " TL2 " ) 。 ObjectDelete ( " MIDL " ) 。 评论 ( " " ) 。 / / ---- 返回 ( 0 ) 。 } / / + ----------------------------------------------- ------------------- + / / | | / / + ----------------------------------------------- ------------------- + DelObj void ( ) { ObjectDelete ( " TL1 " ) 。 ObjectDelete ( " TL2 " ) 。 ObjectDelete ( " MIDL " ) ; } / / + ----------------------------------------------- ------------------- + / / | 自定义指标迭代函数 | / / + ----------------------------------------------- ------------------- + int start ( ) { IndicatorCounted counted_bars = int ( ) 。 / / ---- 如果 ( ( AllBars == 0 ) | | ( Bars < AllBars ) ) AB = Bars ; else AB = AllBars ; / / AB - êîëè ÷ ÷ åñòâî Ian èòûâàåìûõ áàðîâ 如果 ( BarsForFract > 0 ) BFF = BarsForFract ; 否则 switch ( Period ( ) ) { case 1 : BFF = 12 ; break; case 5 : BFF = 48 ; break; case 15 : BFF = 24 ; break; case 30 : BFF = 24 ; break; case 60 : BFF = 12 ; break; case 240 :BFF = 15 ; break; case 1440:BFF = 10; break; case 10080 : BFF = 6 ; break; 默认:DelObj ( ), return ( -1 ) ; break; } CurrentBar = 2 ; / / ñ ÷ ñ òðåòüåãî Suspected èòàåì , ÷ òîáû ôðàêòàë " çàêðåïèñÿ B1 = -1 ; B2 = -1 ; UpDown = 0 ; while ( ( B1 == -1 ) | | ( B2 == -1 ) ) && ( CurrentBar < AB ) ) { / / UpDown = 1 ÷ eo CIA ïåðâûé ôðàêòàë íàéäåí ñâåðõó , UpDown = -1 ÷ eo CIA ïåðâûé ôðàêòàë / / íàéäåí ñíèçó , CIA UpDown = 0÷¸ AU EO ôðàêòàë he íàéäåí . / / A1 a2 è - ÿ áàðîâ íîìåðà ôðàêòàëìè , ÷ ADAC IEO òðîèì îîðíóþ ëèíèþ . / / È D1 D2 - ÷ öåíû ñîîòâåòâåíî ADAC êîîðûå áóäåì ëèíèþ ïðîâîäèòü. 如果 ( ( UpDown < 1 ) && ( CurrentBar == Lowest ( Symbol ( ) , Period ( ) , MODE_LOW , BFF * 2 + 1 , 当前条形图-BFF ))) { 如果 ( UpDown == 0 ) { UpDown = -1 。 B1 = CurrentBar ; P1 = Low [ B1 ] ; } 否则 { B2 = CurrentBar ; P2 = Low [ B2 ] ; } } 如果 ( ( UpDown > -1 ) && ( CurrentBar == Highest ( Symbol ( ) , Period ( ) , MODE_HIGH , BFF * 2 + 1 , 当前条形图 - BFF )) { 如果 ( UpDown == 0 ) { UpDown = 1 。 B1 = CurrentBar ; P1 = High [ B1 ] ; } 否则 { B2 = CurrentBar ; P2 = High [ B2 ] ; } } CurrentBar + + ; } 如果 ( ( B1 == -1 ) | | ( B2 == -1 ) ) { DelObj ( ) ; 返回 ( -1 ) 。 }/ / Eo ÷ CIA he íàøëè ôðàêòàëâ ñðåäè 300 áàðîâ 8-) 步骤 = ( P2 - P1 ) / ( B2 - B1 ) / / Au÷ èñëèëè OAA , åñëè ïîëîæèòåëíûé II , OI êàíàë íèñîäÿùèé P1 = P1 - B1 * 步骤。 B1 = 0 ; / / 穽底AAD = 0 ; / / 穽底AAD = 0。 / / À ÷ eo Oi òåïåðü îïðíóþ ïðîòâîîëæíîé ëèíèè êàíàëà . ishift = 0 ; iprice = 0 ; 如果 ( UpDown == 1 ) { PP = Low [ 2 ] - 2 * Step ; for ( i = 3 ; i < = B2 ; i + + ) { 如果 ( Low [ i ] < PP + Step * i ) PP = Low [ i ] - i * Step ; } 如果( Low [ 0 ] < PP ) { ishift = 0 ; iprice = PP ; } 如果 ( Low [ 1 ] < PP + Step ) { ishift = 1 ; iprice = PP + Step ; } 如果 ( 高位 [ 0 ] > P1 ) { ishift = 0 ; iprice = P1 ; } if ( High [ 1 ] > P1 + Step ) { ishift = 1 ; iprice = P1 + Step ; } } 否则 { PP = High [ 2 ] - 2 * Step ; for (i = 3 ; i < = B2 ; i + + ) { 如果 ( High [ i ] > PP + Step * i ) PP = High [ i ] - i * Step ; } 如果( Low [ 0 ] < P1 ) { ishift = 0 ; iprice = P1 ; } 如果 ( Low [ 1 ] < P1 + Step ) { ishift = 1 ; iprice = P1 + Step ; } 如果 ( 高位 [ 0 ] > PP ) { ishift = 0 ; iprice = PP ; } if ( High [ 1 ] > PP + Step ) { ishift = 1 ; iprice = PP + Step ; } } / / Òåïåðü ïåðå ñàâèì êîíå ÷ è íóþ öåíó he AAD AA , ÷ òîáû ëèíè êàíàëà ðèñîâàëèñü ïîäëííåå P2 = P1 + AB * Step ; T1 = 时间 [ B1 ] 。 T2 = 时间 [ AB ] 。 // Åñëè he áûëî ïðåñå ÷ åíèÿ êàíàëà , oi 0 , EIA ÷ å 襦轵 . if ( iprice ! = 0 ) ExtMapBuffer1 [ ishift ] = iprice ; DelObj ( ) ; ObjectCreate ( " TL1 " , OBJ_TREND , 0 , T2 , PP + Step * AB , T1 , PP ) 。 ObjectSet ( " TL1 " , OBJPROP_COLOR , Lime ) 。 ObjectSet ( " TL1 " , OBJPROP_WIDTH , 2 ) 。 ObjectSet ( " TL1 " , OBJPROP_STYLE , STYLE_SOLID ) 。 ObjectCreate ( " TL2 " , OBJ_TREND , 0 , T2 , P2 , T1 , P1 ) 。 ObjectSet ( " TL2 " , OBJPROP_COLOR , White ) 。 ObjectSet ( " TL2 " , OBJPROP_WIDTH , 2 ) 。 ObjectSet ( " TL2 " , OBJPROP_STYLE , STYLE_SOLID ) 。 ObjectCreate ( " MIDL " , OBJ_TREND , 0 , T2 , ( P2 + PP + Step * AB ) / 2 , T1 , ( P1 + PP ) / 2 ) 。 ObjectSet ( " MIDL " , OBJPROP_COLOR , Yellow ) 。 ObjectSet ( " MIDL " , OBJPROP_WIDTH , 1 ) 。 ObjectSet ( " MIDL " , OBJPROP_STYLE , STYLE_DOT ) 。 注释 ( " 通道尺寸 = " , DoubleToStr ( MathAbs ( PP - P1 ) / Point , 0 ), " 斜率 = " 。 DoubleToStr ( - Step / Point , 2 ))。 / / ---- 返回 ( 0 ) 。 } / / + ----------------------------------------------- ------------------- + Lesson 13 - Your Help adding indicator as Raw Ideas Mladen Rakic 2013.11.27 16:20 #49 djiwenk: 向大家问好 ....请原谅,如果错误的地方,因为我的新成员。请其支持大师的编码。要将这个指标编码到EA中。如果有了这个指标,EA就能按我的要求工作,即。1.当价格触及TL1线时自动打开买入。2.当价格触及TL2线时自动打开卖出3.当价格超过TL2线时自动打开买入4.当价格超过TL1线时自动卖出。5.当价格触及TL2线时,关闭自动买入,直接打开卖出。6.当价格触及TL1线时自动卖出,直接开盘买入7.Nomor 3和4手动关闭(没有TrailingStop)。8.SL 50点,手数为0.1。9.所有货币对的时间框架为H4。非常感谢你/ / + ----------------------------------------------- ------------------- +/ / | SHI_Channel_true.mq4 |/ / | Copyright © 2004 , Shurka & Kevin !/ / | |/ / + ----------------------------------------------- ------------------- +#属性版权 " Copyright © 2004 , Shurka & Kevin "#属性链接" "/ / ----# 属性 indicator_chart_window# property indicator_buffers 1#属性 indicator_color1 红色ExtMapBuffer1 double [ ] ;/ / ---- 输入参数extern int AllBars = 240 ;BarsForFract extern int = 0 ;CurrentBar int = 0 ;double Step = 0 。int B1 = -1 , B2 = -1 。UpDown int = 0 。双P1 = 0 , P2 = 0 , PP = 0 。int i = 0 , AB = 300 , BFF = 0 。ishift int = 0 。双重iprice = 0 。数据时间 T1 , T2 ;/ / + ----------------------------------------------- ------------------- +/ / | 自定义指标初始化函数 |/ / + ----------------------------------------------- ------------------- +int init ( ){/ / ---- 指标SetIndexStyle ( 0 , DRAW_ARROW ) 。SetIndexArrow ( 0 , 164 ) 。SetIndexBuffer ( 0 , ExtMapBuffer1 ) 。SetIndexEmptyValue ( 0 , 0.0 ) 。/ / ----返回 ( 0 ) 。}/ / + ----------------------------------------------- ------------------- +/ / |Custor指示器函数的去初始化 |/ / + ----------------------------------------------- ------------------- +deinit int ( ){ObjectDelete ( " TL1 " ) 。ObjectDelete ( " TL2 " ) 。ObjectDelete ( " MIDL " ) 。评论 ( " " ) 。/ / ----返回 ( 0 ) 。}/ / + ----------------------------------------------- ------------------- +/ / | |/ / + ----------------------------------------------- ------------------- +DelObj void ( ){ObjectDelete ( " TL1 " ) 。ObjectDelete ( " TL2 " ) 。ObjectDelete ( " MIDL " ) ;}/ / + ----------------------------------------------- ------------------- +/ / | 自定义指标迭代函数 |/ / + ----------------------------------------------- ------------------- +int start ( ){IndicatorCounted counted_bars = int ( ) 。/ / ----如果 ( ( AllBars == 0 ) | | ( Bars < AllBars ) )AB = Bars ;else AB = AllBars ; / / AB - êîëè ÷ ÷ åñòâî Ian èòûâàåìûõ áàðîâ如果 ( BarsForFract > 0 )BFF = BarsForFract ;否则switch ( Period ( ) ){case 1 : BFF = 12 ; break;case 5 : BFF = 48 ; break;case 15 : BFF = 24 ; break;case 30 : BFF = 24 ; break;case 60 : BFF = 12 ; break;case 240 :BFF = 15 ; break;case 1440:BFF = 10; break;case 10080 : BFF = 6 ; break;默认:DelObj ( ), return ( -1 ) ; break;}CurrentBar = 2 ; / / ñ ÷ ñ òðåòüåãî Suspected èòàåì , ÷ òîáû ôðàêòàë " çàêðåïèñÿB1 = -1 ;B2 = -1 ;UpDown = 0 ;while ( ( B1 == -1 ) | | ( B2 == -1 ) ) && ( CurrentBar < AB ) ){/ / UpDown = 1 ÷ eo CIA ïåðâûé ôðàêòàë íàéäåí ñâåðõó , UpDown = -1 ÷ eo CIA ïåðâûé ôðàêòàë/ / íàéäåí ñíèçó , CIA UpDown = 0÷¸ AU EO ôðàêòàë he íàéäåí ./ / A1 a2 è - ÿ áàðîâ íîìåðà ôðàêòàëìè , ÷ ADAC IEO òðîèì îîðíóþ ëèíèþ ./ / È D1 D2 - ÷ öåíû ñîîòâåòâåíî ADAC êîîðûå áóäåì ëèíèþ ïðîâîäèòü.如果 ( ( UpDown < 1 ) && ( CurrentBar == Lowest ( Symbol ( ) , Period ( ) , MODE_LOW , BFF * 2 + 1 ,当前条形图-BFF ))){如果 ( UpDown == 0 ){UpDown = -1 。B1 = CurrentBar ;P1 = Low [ B1 ] ;}否则{B2 = CurrentBar ;P2 = Low [ B2 ] ;}}如果 ( ( UpDown > -1 ) && ( CurrentBar == Highest ( Symbol ( ) , Period ( ) , MODE_HIGH , BFF * 2 + 1 ,当前条形图 - BFF )){如果 ( UpDown == 0 ){UpDown = 1 。B1 = CurrentBar ;P1 = High [ B1 ] ;}否则{B2 = CurrentBar ;P2 = High [ B2 ] ;}}CurrentBar + + ;}如果 ( ( B1 == -1 ) | | ( B2 == -1 ) ){DelObj ( ) ;返回 ( -1 ) 。}/ / Eo ÷ CIA he íàøëè ôðàêòàëâ ñðåäè 300 áàðîâ 8-)步骤 = ( P2 - P1 ) / ( B2 - B1 ) / / Au÷ èñëèëè OAA , åñëè ïîëîæèòåëíûé II , OI êàíàë íèñîäÿùèéP1 = P1 - B1 * 步骤。B1 = 0 ; / / 穽底AAD = 0 ; / / 穽底AAD = 0。/ / À ÷ eo Oi òåïåðü îïðíóþ ïðîòâîîëæíîé ëèíèè êàíàëà .ishift = 0 ;iprice = 0 ;如果 ( UpDown == 1 ){PP = Low [ 2 ] - 2 * Step ;for ( i = 3 ; i < = B2 ; i + + ){如果 ( Low [ i ] < PP + Step * i )PP = Low [ i ] - i * Step ;}如果( Low [ 0 ] < PP ){ishift = 0 ;iprice = PP ;}如果 ( Low [ 1 ] < PP + Step ){ishift = 1 ;iprice = PP + Step ;}如果 ( 高位 [ 0 ] > P1 ){ishift = 0 ;iprice = P1 ;}if ( High [ 1 ] > P1 + Step ){ishift = 1 ;iprice = P1 + Step ;}}否则{PP = High [ 2 ] - 2 * Step ;for (i = 3 ; i < = B2 ; i + + ){如果 ( High [ i ] > PP + Step * i )PP = High [ i ] - i * Step ;}如果( Low [ 0 ] < P1 ){ishift = 0 ;iprice = P1 ;}如果 ( Low [ 1 ] < P1 + Step ){ishift = 1 ;iprice = P1 + Step ;}如果 ( 高位 [ 0 ] > PP ){ishift = 0 ;iprice = PP ;}if ( High [ 1 ] > PP + Step ){ishift = 1 ;iprice = PP + Step ;}}/ / Òåïåðü ïåðå ñàâèì êîíå ÷ è íóþ öåíó he AAD AA , ÷ òîáû ëèíè êàíàëà ðèñîâàëèñü ïîäëèíåP2 = P1 + AB * Step ;T1 = 时间 [ B1 ] 。T2 = 时间 [ AB ] 。// Åñëè he áûëî ïðåñå ÷ åíèÿ êàíàëà , oi 0 , EIA ÷ å 襦轵 .if ( iprice ! = 0 )ExtMapBuffer1 [ ishift ] = iprice ;DelObj ( ) ;ObjectCreate ( " TL1 " , OBJ_TREND , 0 , T2 , PP + Step * AB , T1 , PP ) 。ObjectSet ( " TL1 " , OBJPROP_COLOR , Lime ) 。ObjectSet ( " TL1 " , OBJPROP_WIDTH , 2 ) 。ObjectSet ( " TL1 " , OBJPROP_STYLE , STYLE_SOLID ) 。ObjectCreate ( " TL2 " , OBJ_TREND , 0 , T2 , P2 , T1 , P1 ) 。ObjectSet ( " TL2 " , OBJPROP_COLOR , White ) 。ObjectSet ( " TL2 " , OBJPROP_WIDTH , 2 ) 。ObjectSet ( " TL2 " , OBJPROP_STYLE , STYLE_SOLID ) 。ObjectCreate ( " MIDL " , OBJ_TREND , 0 , T2 , ( P2 + PP + Step * AB ) / 2 , T1 , ( P1 + PP ) / 2 ) 。ObjectSet ( " MIDL " , OBJPROP_COLOR , Yellow ) 。ObjectSet ( " MIDL " , OBJPROP_WIDTH , 1 ) 。ObjectSet ( " MIDL " , OBJPROP_STYLE , STYLE_DOT ) 。注释 ( " 通道尺寸 = " , DoubleToStr ( MathAbs ( PP - P1 ) / Point , 0 ), " 斜率 = " 。DoubleToStr ( - Step / Point , 2 ))。/ / ----返回 ( 0 ) 。}/ / + ----------------------------------------------- ------------------- + djiwenk 你知道shi通道一直在变化(随着当前价格的变化 shi通道也会变化)? honko89 2013.12.31 07:49 #50 创作电子书 创建你自己的EA 附加的文件: eaprog.pdf 1296 kb 123456 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
真的很感谢mladen!
我现在看到了。
我也是这么做的。看看吧。
for_a_new_life-1.ex4
for_a_new_life-1_1.mq4
我正在测试我的版本,也将测试你的版本。
如果这个指标是正确的,我们做了一些伟大的事情来捕捉反转点。
这是因为两条移动平均线之差除以2倍力,可以更敏感地显示价格在趋势中的反转。用另一个边界指标测试它,我想你会喜欢的。
一些图片。
我很高兴,因为这是我对论坛的第一次贡献。没有你们的帮助,我是做不到的。
非常感谢Mladen!凯尔奇
只做了一个改变:改变方向。这样看来,它显示的是一个更合理的数值。也可以这样试试
for_a_new_life-1.01.mq4
嗨,Mladen。
我从icustom制作了EA,编译后没有错误和警告,但我在回测时 完全没有OP?
我可以把我的EA发布在这个主题上吗,我想让你帮助我解决这个问题。
谢谢。
致敬
嗨,Mladen。
我从icustom制作了EA,编译后没有错误和警告,但我在回测时完全没有OP?
我可以把我的EA发布在这个主题上吗?我希望你能帮助我解决这个问题。
谢谢。
致以最崇高的敬意多瓦
把它贴出来,这样就会有人看一下了
凯尔奇
只做了一个改变:改变它的方向。似乎这样显示的数值更有逻辑性。也试一下这种方式
for_a_new_life-1.01.mq4谢谢mladen!
这是我的试用版...
这个EA在编译时没有错误或警告,但在BT时没有OP。
我希望这个EA能从之前的OP中逆转。
如果位置已经是买入,那么下一个蜡烛的卖出箭头会出现,自动将位置从买入转为卖出,反之亦然。
也可以添加止损。
对不起,我的英语不好
pfi.ex4ea_pfi.mq4
谢谢你
这里是我的试用版...
这个EA在编译时没有错误或警告,但在BT时没有OP。
我希望这个EA能从之前的OP中逆转。
如果位置已经是买入,那么下一个蜡烛的卖出箭头会出现,自动将位置从买入转为卖出,反之亦然。
也可以添加止损。
对不起,我的英语不好
pfi.ex4ea_pfi.mq4
谢谢你为了让阅读该帖子的人更清楚:"从OP逆转 "或 "BT时没有OP "到底是什么意思?
为了让阅读该帖子的人更清楚:"从OP逆转 "或 "BT时没有OP "到底是什么意思?
我是说OP=开仓,BT=回测。
在我回测之后,没有开仓。
当已经有开仓买入,然后下一个蜡烛卖出箭头/信号出现,自动关闭多头头寸,打开空头头寸,反之亦然(自动反转头寸)。
我希望我的解释能让你明白。
谢谢你
向所有的人问好 ....
请原谅,如果错误的地方,因为我的新成员。
请其支持大师的编码。
要将这个指标编码到EA中。
我想让EA能够按照我的要求工作,即。
1.当价格触及TL1线时自动打开买入。
2.当价格触及TL2线时自动打开卖出
3.当价格超过TL2线时自动打开买入
4.当价格超过TL1线时自动卖出。
5.当价格触及TL2线时,关闭自动买入,直接打开卖出。
6.当价格触及TL1线时自动卖出,直接开盘买入
7.Nomor 3和4手动关闭(没有TrailingStop)。
8.SL 50点,手数为0.1。
9.所有货币对的时间框架为H4。
非常感谢你
/ / + ----------------------------------------------- ------------------- +
/ / | SHI_Channel_true.mq4 |
/ / | Copyright © 2004 , Shurka & Kevin !
/ / | |
/ / + ----------------------------------------------- ------------------- +
#属性版权 " Copyright © 2004 , Shurka & Kevin "
#属性链接" "
/ / ----
#属性 indicator_chart_window
# property indicator_buffers 1
#属性 indicator_color1 红色
ExtMapBuffer1 double [ ] ;
/ / ---- 输入参数
extern int AllBars = 240 ;
BarsForFract extern int = 0 ;
CurrentBar int = 0 ;
double Step = 0 。
int B1 = -1 , B2 = -1 。
UpDown int = 0 。
双P1 = 0 , P2 = 0 , PP = 0 。
int i = 0 , AB = 300 , BFF = 0 。
ishift int = 0 。
双重iprice = 0 。
数据时间 T1 , T2 ;
/ / + ----------------------------------------------- ------------------- +
/ / | 自定义指标初始化函数 |
/ / + ----------------------------------------------- ------------------- +
int init ( )
{
/ / ---- 指标
SetIndexStyle ( 0 , DRAW_ARROW ) 。
SetIndexArrow ( 0 , 164 ) 。
SetIndexBuffer ( 0 , ExtMapBuffer1 ) 。
SetIndexEmptyValue ( 0 , 0.0 ) 。
/ / ----
返回 ( 0 ) 。
}
/ / + ----------------------------------------------- ------------------- +
/ / |Custor指示器函数的去初始化 |
/ / + ----------------------------------------------- ------------------- +
deinit int ( )
{
ObjectDelete ( " TL1 " ) 。
ObjectDelete ( " TL2 " ) 。
ObjectDelete ( " MIDL " ) 。
评论 ( " " ) 。
/ / ----
返回 ( 0 ) 。
}
/ / + ----------------------------------------------- ------------------- +
/ / | |
/ / + ----------------------------------------------- ------------------- +
DelObj void ( )
{
ObjectDelete ( " TL1 " ) 。
ObjectDelete ( " TL2 " ) 。
ObjectDelete ( " MIDL " ) ;
}
/ / + ----------------------------------------------- ------------------- +
/ / | 自定义指标迭代函数 |
/ / + ----------------------------------------------- ------------------- +
int start ( )
{
IndicatorCounted counted_bars = int ( ) 。
/ / ----
如果 ( ( AllBars == 0 ) | | ( Bars < AllBars ) )
AB = Bars ;
else AB = AllBars ; / / AB - êîëè ÷ ÷ åñòâî Ian èòûâàåìûõ áàðîâ
如果 ( BarsForFract > 0 )
BFF = BarsForFract ;
否则
switch ( Period ( ) )
{
case 1 : BFF = 12 ; break;
case 5 : BFF = 48 ; break;
case 15 : BFF = 24 ; break;
case 30 : BFF = 24 ; break;
case 60 : BFF = 12 ; break;
case 240 :BFF = 15 ; break;
case 1440:BFF = 10; break;
case 10080 : BFF = 6 ; break;
默认:DelObj ( ), return ( -1 ) ; break;
}
CurrentBar = 2 ; / / ñ ÷ ñ òðåòüåãî Suspected èòàåì , ÷ òîáû ôðàêòàë " çàêðåïèñÿ
B1 = -1 ;
B2 = -1 ;
UpDown = 0 ;
while ( ( B1 == -1 ) | | ( B2 == -1 ) ) && ( CurrentBar < AB ) )
{
/ / UpDown = 1 ÷ eo CIA ïåðâûé ôðàêòàë íàéäåí ñâåðõó , UpDown = -1 ÷ eo CIA ïåðâûé ôðàêòàë
/ / íàéäåí ñíèçó , CIA UpDown = 0÷¸ AU EO ôðàêòàë he íàéäåí .
/ / A1 a2 è - ÿ áàðîâ íîìåðà ôðàêòàëìè , ÷ ADAC IEO òðîèì îîðíóþ ëèíèþ .
/ / È D1 D2 - ÷ öåíû ñîîòâåòâåíî ADAC êîîðûå áóäåì ëèíèþ ïðîâîäèòü.
如果 ( ( UpDown < 1 ) && ( CurrentBar == Lowest ( Symbol ( ) , Period ( ) , MODE_LOW , BFF * 2 + 1 ,
当前条形图-BFF )))
{
如果 ( UpDown == 0 )
{
UpDown = -1 。
B1 = CurrentBar ;
P1 = Low [ B1 ] ;
}
否则
{
B2 = CurrentBar ;
P2 = Low [ B2 ] ;
}
}
如果 ( ( UpDown > -1 ) && ( CurrentBar == Highest ( Symbol ( ) , Period ( ) , MODE_HIGH , BFF * 2 + 1 ,
当前条形图 - BFF ))
{
如果 ( UpDown == 0 )
{
UpDown = 1 。
B1 = CurrentBar ;
P1 = High [ B1 ] ;
}
否则
{
B2 = CurrentBar ;
P2 = High [ B2 ] ;
}
}
CurrentBar + + ;
}
如果 ( ( B1 == -1 ) | | ( B2 == -1 ) )
{
DelObj ( ) ;
返回 ( -1 ) 。
}/ / Eo ÷ CIA he íàøëè ôðàêòàëâ ñðåäè 300 áàðîâ 8-)
步骤 = ( P2 - P1 ) / ( B2 - B1 ) / / Au÷ èñëèëè OAA , åñëè ïîëîæèòåëíûé II , OI êàíàë íèñîäÿùèé
P1 = P1 - B1 * 步骤。
B1 = 0 ; / / 穽底AAD = 0 ; / / 穽底AAD = 0。
/ / À ÷ eo Oi òåïåðü îïðíóþ ïðîòâîîëæíîé ëèíèè êàíàëà .
ishift = 0 ;
iprice = 0 ;
如果 ( UpDown == 1 )
{
PP = Low [ 2 ] - 2 * Step ;
for ( i = 3 ; i < = B2 ; i + + )
{
如果 ( Low [ i ] < PP + Step * i )
PP = Low [ i ] - i * Step ;
}
如果( Low [ 0 ] < PP )
{
ishift = 0 ;
iprice = PP ;
}
如果 ( Low [ 1 ] < PP + Step )
{
ishift = 1 ;
iprice = PP + Step ;
}
如果 ( 高位 [ 0 ] > P1 )
{
ishift = 0 ;
iprice = P1 ;
}
if ( High [ 1 ] > P1 + Step )
{
ishift = 1 ;
iprice = P1 + Step ;
}
}
否则
{
PP = High [ 2 ] - 2 * Step ;
for (i = 3 ; i < = B2 ; i + + )
{
如果 ( High [ i ] > PP + Step * i )
PP = High [ i ] - i * Step ;
}
如果( Low [ 0 ] < P1 )
{
ishift = 0 ;
iprice = P1 ;
}
如果 ( Low [ 1 ] < P1 + Step )
{
ishift = 1 ;
iprice = P1 + Step ;
}
如果 ( 高位 [ 0 ] > PP )
{
ishift = 0 ;
iprice = PP ;
}
if ( High [ 1 ] > PP + Step )
{
ishift = 1 ;
iprice = PP + Step ;
}
}
/ / Òåïåðü ïåðå ñàâèì êîíå ÷ è íóþ öåíó he AAD AA , ÷ òîáû ëèíè êàíàëà ðèñîâàëèñü ïîäëííåå
P2 = P1 + AB * Step ;
T1 = 时间 [ B1 ] 。
T2 = 时间 [ AB ] 。
// Åñëè he áûëî ïðåñå ÷ åíèÿ êàíàëà , oi 0 , EIA ÷ å 襦轵 .
if ( iprice ! = 0 )
ExtMapBuffer1 [ ishift ] = iprice ;
DelObj ( ) ;
ObjectCreate ( " TL1 " , OBJ_TREND , 0 , T2 , PP + Step * AB , T1 , PP ) 。
ObjectSet ( " TL1 " , OBJPROP_COLOR , Lime ) 。
ObjectSet ( " TL1 " , OBJPROP_WIDTH , 2 ) 。
ObjectSet ( " TL1 " , OBJPROP_STYLE , STYLE_SOLID ) 。
ObjectCreate ( " TL2 " , OBJ_TREND , 0 , T2 , P2 , T1 , P1 ) 。
ObjectSet ( " TL2 " , OBJPROP_COLOR , White ) 。
ObjectSet ( " TL2 " , OBJPROP_WIDTH , 2 ) 。
ObjectSet ( " TL2 " , OBJPROP_STYLE , STYLE_SOLID ) 。
ObjectCreate ( " MIDL " , OBJ_TREND , 0 , T2 , ( P2 + PP + Step * AB ) / 2 , T1 , ( P1 + PP ) / 2 ) 。
ObjectSet ( " MIDL " , OBJPROP_COLOR , Yellow ) 。
ObjectSet ( " MIDL " , OBJPROP_WIDTH , 1 ) 。
ObjectSet ( " MIDL " , OBJPROP_STYLE , STYLE_DOT ) 。
注释 ( " 通道尺寸 = " , DoubleToStr ( MathAbs ( PP - P1 ) / Point , 0 ), " 斜率 = " 。
DoubleToStr ( - Step / Point , 2 ))。
/ / ----
返回 ( 0 ) 。
}
/ / + ----------------------------------------------- ------------------- +
向大家问好 ....
请原谅,如果错误的地方,因为我的新成员。
请其支持大师的编码。
要将这个指标编码到EA中。
如果有了这个指标,EA就能按我的要求工作,即。
1.当价格触及TL1线时自动打开买入。
2.当价格触及TL2线时自动打开卖出
3.当价格超过TL2线时自动打开买入
4.当价格超过TL1线时自动卖出。
5.当价格触及TL2线时,关闭自动买入,直接打开卖出。
6.当价格触及TL1线时自动卖出,直接开盘买入
7.Nomor 3和4手动关闭(没有TrailingStop)。
8.SL 50点,手数为0.1。
9.所有货币对的时间框架为H4。
非常感谢你
/ / + ----------------------------------------------- ------------------- +
/ / | SHI_Channel_true.mq4 |
/ / | Copyright © 2004 , Shurka & Kevin !
/ / | |
/ / + ----------------------------------------------- ------------------- +
#属性版权 " Copyright © 2004 , Shurka & Kevin "
#属性链接" "
/ / ----
# 属性 indicator_chart_window
# property indicator_buffers 1
#属性 indicator_color1 红色
ExtMapBuffer1 double [ ] ;
/ / ---- 输入参数
extern int AllBars = 240 ;
BarsForFract extern int = 0 ;
CurrentBar int = 0 ;
double Step = 0 。
int B1 = -1 , B2 = -1 。
UpDown int = 0 。
双P1 = 0 , P2 = 0 , PP = 0 。
int i = 0 , AB = 300 , BFF = 0 。
ishift int = 0 。
双重iprice = 0 。
数据时间 T1 , T2 ;
/ / + ----------------------------------------------- ------------------- +
/ / | 自定义指标初始化函数 |
/ / + ----------------------------------------------- ------------------- +
int init ( )
{
/ / ---- 指标
SetIndexStyle ( 0 , DRAW_ARROW ) 。
SetIndexArrow ( 0 , 164 ) 。
SetIndexBuffer ( 0 , ExtMapBuffer1 ) 。
SetIndexEmptyValue ( 0 , 0.0 ) 。
/ / ----
返回 ( 0 ) 。
}
/ / + ----------------------------------------------- ------------------- +
/ / |Custor指示器函数的去初始化 |
/ / + ----------------------------------------------- ------------------- +
deinit int ( )
{
ObjectDelete ( " TL1 " ) 。
ObjectDelete ( " TL2 " ) 。
ObjectDelete ( " MIDL " ) 。
评论 ( " " ) 。
/ / ----
返回 ( 0 ) 。
}
/ / + ----------------------------------------------- ------------------- +
/ / | |
/ / + ----------------------------------------------- ------------------- +
DelObj void ( )
{
ObjectDelete ( " TL1 " ) 。
ObjectDelete ( " TL2 " ) 。
ObjectDelete ( " MIDL " ) ;
}
/ / + ----------------------------------------------- ------------------- +
/ / | 自定义指标迭代函数 |
/ / + ----------------------------------------------- ------------------- +
int start ( )
{
IndicatorCounted counted_bars = int ( ) 。
/ / ----
如果 ( ( AllBars == 0 ) | | ( Bars < AllBars ) )
AB = Bars ;
else AB = AllBars ; / / AB - êîëè ÷ ÷ åñòâî Ian èòûâàåìûõ áàðîâ
如果 ( BarsForFract > 0 )
BFF = BarsForFract ;
否则
switch ( Period ( ) )
{
case 1 : BFF = 12 ; break;
case 5 : BFF = 48 ; break;
case 15 : BFF = 24 ; break;
case 30 : BFF = 24 ; break;
case 60 : BFF = 12 ; break;
case 240 :BFF = 15 ; break;
case 1440:BFF = 10; break;
case 10080 : BFF = 6 ; break;
默认:DelObj ( ), return ( -1 ) ; break;
}
CurrentBar = 2 ; / / ñ ÷ ñ òðåòüåãî Suspected èòàåì , ÷ òîáû ôðàêòàë " çàêðåïèñÿ
B1 = -1 ;
B2 = -1 ;
UpDown = 0 ;
while ( ( B1 == -1 ) | | ( B2 == -1 ) ) && ( CurrentBar < AB ) )
{
/ / UpDown = 1 ÷ eo CIA ïåðâûé ôðàêòàë íàéäåí ñâåðõó , UpDown = -1 ÷ eo CIA ïåðâûé ôðàêòàë
/ / íàéäåí ñíèçó , CIA UpDown = 0÷¸ AU EO ôðàêòàë he íàéäåí .
/ / A1 a2 è - ÿ áàðîâ íîìåðà ôðàêòàëìè , ÷ ADAC IEO òðîèì îîðíóþ ëèíèþ .
/ / È D1 D2 - ÷ öåíû ñîîòâåòâåíî ADAC êîîðûå áóäåì ëèíèþ ïðîâîäèòü.
如果 ( ( UpDown < 1 ) && ( CurrentBar == Lowest ( Symbol ( ) , Period ( ) , MODE_LOW , BFF * 2 + 1 ,
当前条形图-BFF )))
{
如果 ( UpDown == 0 )
{
UpDown = -1 。
B1 = CurrentBar ;
P1 = Low [ B1 ] ;
}
否则
{
B2 = CurrentBar ;
P2 = Low [ B2 ] ;
}
}
如果 ( ( UpDown > -1 ) && ( CurrentBar == Highest ( Symbol ( ) , Period ( ) , MODE_HIGH , BFF * 2 + 1 ,
当前条形图 - BFF ))
{
如果 ( UpDown == 0 )
{
UpDown = 1 。
B1 = CurrentBar ;
P1 = High [ B1 ] ;
}
否则
{
B2 = CurrentBar ;
P2 = High [ B2 ] ;
}
}
CurrentBar + + ;
}
如果 ( ( B1 == -1 ) | | ( B2 == -1 ) )
{
DelObj ( ) ;
返回 ( -1 ) 。
}/ / Eo ÷ CIA he íàøëè ôðàêòàëâ ñðåäè 300 áàðîâ 8-)
步骤 = ( P2 - P1 ) / ( B2 - B1 ) / / Au÷ èñëèëè OAA , åñëè ïîëîæèòåëíûé II , OI êàíàë íèñîäÿùèé
P1 = P1 - B1 * 步骤。
B1 = 0 ; / / 穽底AAD = 0 ; / / 穽底AAD = 0。
/ / À ÷ eo Oi òåïåðü îïðíóþ ïðîòâîîëæíîé ëèíèè êàíàëà .
ishift = 0 ;
iprice = 0 ;
如果 ( UpDown == 1 )
{
PP = Low [ 2 ] - 2 * Step ;
for ( i = 3 ; i < = B2 ; i + + )
{
如果 ( Low [ i ] < PP + Step * i )
PP = Low [ i ] - i * Step ;
}
如果( Low [ 0 ] < PP )
{
ishift = 0 ;
iprice = PP ;
}
如果 ( Low [ 1 ] < PP + Step )
{
ishift = 1 ;
iprice = PP + Step ;
}
如果 ( 高位 [ 0 ] > P1 )
{
ishift = 0 ;
iprice = P1 ;
}
if ( High [ 1 ] > P1 + Step )
{
ishift = 1 ;
iprice = P1 + Step ;
}
}
否则
{
PP = High [ 2 ] - 2 * Step ;
for (i = 3 ; i < = B2 ; i + + )
{
如果 ( High [ i ] > PP + Step * i )
PP = High [ i ] - i * Step ;
}
如果( Low [ 0 ] < P1 )
{
ishift = 0 ;
iprice = P1 ;
}
如果 ( Low [ 1 ] < P1 + Step )
{
ishift = 1 ;
iprice = P1 + Step ;
}
如果 ( 高位 [ 0 ] > PP )
{
ishift = 0 ;
iprice = PP ;
}
if ( High [ 1 ] > PP + Step )
{
ishift = 1 ;
iprice = PP + Step ;
}
}
/ / Òåïåðü ïåðå ñàâèì êîíå ÷ è íóþ öåíó he AAD AA , ÷ òîáû ëèíè êàíàëà ðèñîâàëèñü ïîäëèíå
P2 = P1 + AB * Step ;
T1 = 时间 [ B1 ] 。
T2 = 时间 [ AB ] 。
// Åñëè he áûëî ïðåñå ÷ åíèÿ êàíàëà , oi 0 , EIA ÷ å 襦轵 .
if ( iprice ! = 0 )
ExtMapBuffer1 [ ishift ] = iprice ;
DelObj ( ) ;
ObjectCreate ( " TL1 " , OBJ_TREND , 0 , T2 , PP + Step * AB , T1 , PP ) 。
ObjectSet ( " TL1 " , OBJPROP_COLOR , Lime ) 。
ObjectSet ( " TL1 " , OBJPROP_WIDTH , 2 ) 。
ObjectSet ( " TL1 " , OBJPROP_STYLE , STYLE_SOLID ) 。
ObjectCreate ( " TL2 " , OBJ_TREND , 0 , T2 , P2 , T1 , P1 ) 。
ObjectSet ( " TL2 " , OBJPROP_COLOR , White ) 。
ObjectSet ( " TL2 " , OBJPROP_WIDTH , 2 ) 。
ObjectSet ( " TL2 " , OBJPROP_STYLE , STYLE_SOLID ) 。
ObjectCreate ( " MIDL " , OBJ_TREND , 0 , T2 , ( P2 + PP + Step * AB ) / 2 , T1 , ( P1 + PP ) / 2 ) 。
ObjectSet ( " MIDL " , OBJPROP_COLOR , Yellow ) 。
ObjectSet ( " MIDL " , OBJPROP_WIDTH , 1 ) 。
ObjectSet ( " MIDL " , OBJPROP_STYLE , STYLE_DOT ) 。
注释 ( " 通道尺寸 = " , DoubleToStr ( MathAbs ( PP - P1 ) / Point , 0 ), " 斜率 = " 。
DoubleToStr ( - Step / Point , 2 ))。
/ / ----
返回 ( 0 ) 。
}
/ / + ----------------------------------------------- ------------------- +djiwenk
你知道shi通道一直在变化(随着当前价格的变化 shi通道也会变化)?
创作电子书
创建你自己的EA