[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 403 1...396397398399400401402403404405406407408409410...537 新评论 Leonid Borsky 2011.05.23 19:14 #4021 ruslanchik: 请告诉我如何计算堆栈大小 把问题说得更具体些。 Alexander Kuznetsov 2011.05.23 22:06 #4022 有没有可能在优化中跳过一个不必要的步骤而进入下一个步骤? 例如:有一些需要优化的输入参数(类型为双数):X1,X2,X3,X4。 它们的值从1到5。 步骤 0.1 很明显,在这种情况下,将有41*41*41*41=2,825,761个 但我们需要在以下约束条件下进行搜索:10.5 < x1+x2+x3+x4 < 11.5。这里已经很清楚,搜索变体会少很多。(这正是对所需金额的限制) 因此,如果将这一限制添加到专家顾问的代码中,就像这样 extern double x1=1, x2=1, x3=1, x4=1; int start() { if (10.5<x1+x2+x3+x4 && x1+x2+x3+x4<11.5) { // основной код эксперта } return; } 那么在优化过程中(当每个新的刻度线到达时),不合适的变体也将被取走,例如x1=4,x2=4,x3=4,x4=4;确切地说,不会发生的是执行主代码。 也就是说,只要这个优化步骤没有 "跑过 "历史区间,就不会过渡到下一个步骤。会有一个 "信念",即 10.5 < x1+x2+x3+x4 < 11.5的条件 没有得到满足,它只会停止主代码的执行。 在这种明显不适合的变体上,时间将被大大浪费。 在明显不合适的参数下,我们怎样才能排除这种优化步骤? 也就是说,当另一组参数变得不合适时,这一步不应该被优化,而应该立即传递给新的一步? --- 2011.05.23 22:28 #4023 fmql: 有没有可能跳过一个不必要的优化步骤而进入下一个步骤? 有可能优化3个参数,并调整第四个参数以达到所需数量。 或使用第三个选项卡 "优化 "来自动生成所需的事件。 Alexander Kuznetsov 2011.05.23 23:03 #4024 sergeev: 有可能优化3个参数,并调整第四个参数以达到所需数量。 或使用第三个选项卡 "优化 "来自发地生成所需的事件。 关键是,在我的情况下,如果没有第四个参数,就不可能对3个参数进行优化。 在这里,重要的是它们的联合选择,它们的总和在区间内是有限的。 (它近似于寻找混合物中所有成分的份额,并且该混合物的总质量被限制在一个严格的区间内)。 你能告诉我更多关于第三个标签的信息吗,这个自发产生的预期事件是什么? Roman Kutemov 2011.05.24 06:47 #4025 下午好。 你能告诉我如何提取ZigZag指标的最后一个极值的蜡烛值(高点、低点、开盘、收盘)吗? Porter 2011.05.24 06:58 #4026 与任何其他蜡烛一样。同样的功能。( 想想你的星球的直径。(c) ) Porter 2011.05.24 07:09 #4027 如果你想获得最后一个极值本身的条形图编号,使用最后一条射线的对象名称来获得 第一个坐标的时间,这将对应于条形图的时间。利用酒吧的时间,确定酒吧的编号。根据钢筋编号确定钢筋的特性。 --- 2011.05.24 07:15 #4028 fmql: 你能详细说明一下第三个标签,什么是所需事件的自发生成? 更多细节请见帮助 简而言之,你可以在第三个标签上创建自己的点位条件(例如,连续开出10个亏损的订单),测试器将自动跳过这个运行,进入下一个运行。 Leonid Borsky 2011.05.24 08:36 #4029 Stells: 下午好。 你能告诉我如何提取ZigZag指标的最后一个极值的蜡烛值(高点、低点、开盘、收盘)吗? 这样的操作需要进行一些计算。 我以前是这样做的。 int start() { double // экстремумы Зиг-Зага y3=0, y2=0, y1=0, y0, zz; int x3, x2, x1, sh=ShiftBars;// номера баров y0=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, 1); //============================================================================= // Берём три экстремума Зиг-Зага while (y3==0) { zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh); if (zz!=0 && zz!=EMPTY_VALUE) { if (y1==0) { x1=sh; y1=zz; } else if (y2==0) { x2=sh; y2=zz; } else if (y3==0) { x3=sh; y3=zz; } } sh++; //----- Вывод информации на экран ----------------------------------------------- string info=""; string on_off="---------------------------------------------------"+ "\r\n"; on_off=StringConcatenate (on_off,"Экстремум= ",y1," на ",x1," баре","\r\n"); on_off=StringConcatenate (on_off,"Экстремум= ",y2," на ",x2," баре","\r\n"); info=StringConcatenate(info,on_off,"\r\n"); info=StringConcatenate(info,"\r\n"); Comment(info); 现在你知道了最后两个极值(最小和最大)的条形数字,然后是它们的高点,低点....。 很容易找到 ! - Close[x1], Open[x2], ....等。 也许有人会提出一个更简单的方案。 Dimka-novitsek 2011.05.24 10:51 #4030 不能组织一个循环,X和Y总是0。//+------------------------------------------------------------------+ //| для лавин.mq4 | //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN; // R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss; int start() { int X,Y; double price=(Ask+Bid)/2; //---- Alert ("OrdersTotal()",OrdersTotal()); if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000){ for(int i=OrdersTotal();i==0;i--){ OrderSelect(i,SELECT_BY_POS );if(OrderType( )==OP_BUYSTOP){X++;}}}Alert ("X", X); if (X==0){ tiket= OrderSend( Symbol(), OP_BUYSTOP, volume*A, price +otstup*Point, Point* 3, R1, price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000, expiration, Red); Alert ("OP_BUYSTOP", GetLastError( )); } if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()) { for( i=OrdersTotal();i==0;i--){OrderSelect(i,SELECT_BY_POS ); if(OrderType( ) ==OP_SELLSTOP) { Y++;}}}Alert ("Y", Y); if (Y==0){ tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, price -otstup*Point, Point* 3,R2, price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000, expiration,C'0,128,255' ); Alert ("OP_SELLSTOP", GetLastError( )); } //---- return(0); } //+------------------------------------------------------------------+ 1...396397398399400401402403404405406407408409410...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
请告诉我如何计算堆栈大小
把问题说得更具体些。
有没有可能在优化中跳过一个不必要的步骤而进入下一个步骤?
例如:有一些需要优化的输入参数(类型为双数):X1,X2,X3,X4。 它们的值从1到5。 步骤 0.1
很明显,在这种情况下,将有41*41*41*41=2,825,761个
但我们需要在以下约束条件下进行搜索:10.5 < x1+x2+x3+x4 < 11.5。这里已经很清楚,搜索变体会少很多。(这正是对所需金额的限制)
因此,如果将这一限制添加到专家顾问的代码中,就像这样
那么在优化过程中(当每个新的刻度线到达时),不合适的变体也将被取走,例如x1=4,x2=4,x3=4,x4=4;确切地说,不会发生的是执行主代码。
也就是说,只要这个优化步骤没有 "跑过 "历史区间,就不会过渡到下一个步骤。会有一个 "信念",即 10.5 < x1+x2+x3+x4 < 11.5的条件 没有得到满足,它只会停止主代码的执行。
在这种明显不适合的变体上,时间将被大大浪费。
在明显不合适的参数下,我们怎样才能排除这种优化步骤?
也就是说,当另一组参数变得不合适时,这一步不应该被优化,而应该立即传递给新的一步?
有没有可能跳过一个不必要的优化步骤而进入下一个步骤?
有可能优化3个参数,并调整第四个参数以达到所需数量。
或使用第三个选项卡 "优化 "来自动生成所需的事件。
有可能优化3个参数,并调整第四个参数以达到所需数量。
或使用第三个选项卡 "优化 "来自发地生成所需的事件。
关键是,在我的情况下,如果没有第四个参数,就不可能对3个参数进行优化。
在这里,重要的是它们的联合选择,它们的总和在区间内是有限的。
(它近似于寻找混合物中所有成分的份额,并且该混合物的总质量被限制在一个严格的区间内)。
你能告诉我更多关于第三个标签的信息吗,这个自发产生的预期事件是什么?
下午好。
你能告诉我如何提取ZigZag指标的最后一个极值的蜡烛值(高点、低点、开盘、收盘)吗?
你能详细说明一下第三个标签,什么是所需事件的自发生成?
更多细节请见帮助
简而言之,你可以在第三个标签上创建自己的点位条件(例如,连续开出10个亏损的订单),测试器将自动跳过这个运行,进入下一个运行。
下午好。
你能告诉我如何提取ZigZag指标的最后一个极值的蜡烛值(高点、低点、开盘、收盘)吗?
这样的操作需要进行一些计算。
我以前是这样做的。
现在你知道了最后两个极值(最小和最大)的条形数字,然后是它们的高点,低点....。 很容易找到 !
- Close[x1], Open[x2], ....等。
也许有人会提出一个更简单的方案。