[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 180 1...173174175176177178179180181182183184185186187...432 新评论 Sergey Diubakin 2013.02.25 19:07 #1791 solnce600:祝大家今天愉快我是一个新手。这是我第一次尝试在测试器中把一个想法变成代码。这个想法很简单--在每个小时的蜡烛图的开盘价开一个订单,交替地向上和向下。我已经写了一个简单的代码....但问题是,程序有时会在一个蜡烛图开盘时开出1个以上的订单。在我看来,当1秒内出现1个以上的刻度时就会发生这种情况。作为一个替代方案,我试着把if( ) 条件的标头放进去。订单总数()==0只有一个订单真正打开。 但这个变体不适合我,因为第二天所给的烛台没有打开,因为在这个烛台打开的时刻交易中已经有了随机数量的订单。我还尝试中断OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP);用return中断start()的执行;.....并没有帮助。如果您能告诉我如何在任何一个点上只做1个订单,并在1秒内打开,我将非常感激。int start() { double Price=Ask; double SL=Price-300*Point; 双重TP=价格+300*点。 if( Hour()==10 && Minute()==00 && Seconds()==00) OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP)。} 试试这个变体。int TimeNow, TimePrev, PrevType; int start() { double Price,SL,TP; int Ticket; TimeNow=iTime(NULL,0,0); if(TimePrev==TimeNow) return(0); if(PrevType!=1) { Price=NormalizeDouble(Ask,Digits); SL=NormalizeDouble(Price-300*Point,Digits); TP=NormalizeDouble(Price+300*Point,Digits); Ticket=OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP); if(Ticket!=-1) { TimePrev=TimeNow; PrevType=1; } } else if(PrevType!=-1) { Price=NormalizeDouble(Bid,Digits); SL=NormalizeDouble(Price+300*Point,Digits); TP=NormalizeDouble(Price-300*Point,Digits); Ticket=OrderSend(Symbol(),OP_SELL,0.1,Price,3,SL,TP); if(Ticket!=-1) { TimePrev=TimeNow; PrevType=-1; } } } ANDREY 2013.02.25 19:21 #1792 alsu: 非常感谢您的及时回复。 ANDREY 2013.02.25 19:23 #1793 Diubakin: 试试这个选项。 非常感谢您的及时回复。 Boris 2013.02.25 21:14 #1794 亲爱的专业人员!我在哪里可以找到能在手动模式下工作的SloseBy()函数?我想把它添加到我的猫头鹰中,这样我就可以把 最大负值的头寸关闭 到最大正值的头寸 中,不是手动,而是根据条件自动关闭。我在代码库中找不到它。我在代码库中没有找到它,谢谢你!"。 Sergey Diubakin 2013.02.25 22:26 #1795 borilunad: 熟练工!"。我在哪里可以找到СloseBy()函数,它在手动模式下工作?我想把它添加到我的猫头鹰中,这样就不可能把最大负值的头寸关闭到最大正值的相反位置,而是根据条件自动关闭。我在代码库中找不到它。我在代码库中没有找到它,谢谢你!"。试试这个选项。bool LockOFF(int EA_Magic) { double Result, PrevLoss, PrevProfit; int pos, orders_total, order_type, MaxProfitTicket, MaxLossTicket; bool Ans; MaxProfitTicket=-1; MaxLossTicket=-1; orders_total=OrdersTotal(); for(pos=orders_total-1; pos>=0; pos--) { if(!OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=EA_Magic) continue; // не наш ордер if(OrderType()>1) continue; Result=OrderProfit()+OrderSwap()+OrderCommission(); if(Result<0.0 && (PrevLoss==0.0 || Result<PrevLoss)) { PrevLoss=Result; MaxLossTicket=OrderTicket(); order_type=OrderType(); } } // end of for if(MaxLossTicket==-1) return(false); // нет убыточной позиции if(order_type==OP_BUY) order_type=OP_SELL; else order_type=OP_BUY; orders_total=OrdersTotal(); for(pos=orders_total-1; pos>=0; pos--) { if(!OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=EA_Magic) continue; // не наш ордер if(order_type!=OrderType()) continue; Result=OrderProfit()+OrderSwap()+OrderCommission(); if(Result>0.0 && (PrevProfit==0.0 || Result>PrevProfit)) { PrevProfit=Result; MaxProfitTicket=OrderTicket(); } } // end of for if(MaxProfitTicket==-1) return(false); // нет противоположной прибыльной позиции Ans=OrderCloseBy(MaxLossTicket, MaxProfitTicket); if(!Ans) { Print("Ошибка при встречном закрытие"); return(false); } return(true); } Boris 2013.02.25 23:18 #1796 谢尔盖,粗略地看了一下,它是值得的!我把它拧上,创造条件,然后试试。非常感谢您! 试了一下,工作起来没有错误!现在只需试验一下条件,得到的效果,就会好起来的!"。但这是为明天准备的! 非常感谢你。还有有趣的梦! Artyom Trishkin 2013.02.26 00:10 #1797 borilunad: 谢尔盖,粗略地看了一下,它是值得的!我把它拧上,创造条件,然后试试。非常感谢您! 只不过不是反关闭命令,而是插入一个完整的反关闭功能--否则就只是为测试者服务。并初始化函数中的变量。 Boris 2013.02.26 07:35 #1798 artmedia70: 只不过不是反关闭命令,而是插入一个完整的反关闭功能--否则就只是为测试者服务。并初始化函数中的变量。 谢谢Artyom,太晚了。我今天会按照网上的规则来做所有的事情! Artyom Trishkin 2013.02.26 08:09 #1799 borilunad: 谢谢你,阿尔乔姆!太晚了。今天将按照网上的规则做一切事情! 好运... Maksim Paulau 2013.02.26 10:47 #1800 下午好。我有这样一个问题。我 从其他专家顾问和感应器的代码碎片中艰难地重新设计了这个指标 以满足自己的需要。这不是一个大的代码,它以我想要的方式工作。问题是,它在内部进行一些计算,并在图表上显示出向上或向下的箭头。请告知如何使专家顾问在图表上出现箭头时按正确的方向开立订单。更确切地说,我只需要知道现在哪个箭头是活动的,我想我可以做其他的事情。这里有一段代码可以让它更清晰,它是指标中的一个初始化部分 SetIndexBuffer(1, Vverh); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,233); SetIndexBuffer(2,Vniz); SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,234); 预先感谢 1...173174175176177178179180181182183184185186187...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
祝大家今天愉快
我是一个新手。这是我第一次尝试在测试器中把一个想法变成代码。
这个想法很简单--在每个小时的蜡烛图的开盘价开一个订单,交替地向上和向下。
我已经写了一个简单的代码....但问题是,程序有时会在一个蜡烛图开盘时开出1个以上的订单。
在我看来,当1秒内出现1个以上的刻度时就会发生这种情况。
作为一个替代方案,我试着把if( ) 条件的标头放进去。
只有一个订单真正打开。
但这个变体不适合我,因为第二天所给的烛台没有打开,因为在这个烛台打开的时刻
交易中已经有了随机数量的订单。
我还尝试中断OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP);用return中断start()的执行;.....并没有帮助。
如果您能告诉我如何在任何一个点上只做1个订单,并在1秒内打开,我将非常感激。
int start()
{
double Price=Ask;
double SL=Price-300*Point;
双重TP=价格+300*点。
if( Hour()==10 && Minute()==00 && Seconds()==00)
OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP)。
}
非常感谢您的及时回复。
试试这个选项。
熟练工!"。我在哪里可以找到СloseBy()函数,它在手动模式下工作?我想把它添加到我的猫头鹰中,这样就不可能把最大负值的头寸关闭到最大正值的相反位置,而是根据条件自动关闭。我在代码库中找不到它。我在代码库中没有找到它,谢谢你!"。
试试这个选项。
谢尔盖,粗略地看了一下,它是值得的!我把它拧上,创造条件,然后试试。非常感谢您!
试了一下,工作起来没有错误!现在只需试验一下条件,得到的效果,就会好起来的!"。但这是为明天准备的!
非常感谢你。还有有趣的梦!
谢尔盖,粗略地看了一下,它是值得的!我把它拧上,创造条件,然后试试。非常感谢您!
只不过不是反关闭命令,而是插入一个完整的反关闭功能--否则就只是为测试者服务。并初始化函数中的变量。
谢谢你,阿尔乔姆!太晚了。今天将按照网上的规则做一切事情!
下午好。我有这样一个问题。
我 从其他专家顾问和感应器的代码碎片中艰难地重新设计了这个指标 以满足自己的需要。这不是一个大的代码,它以我想要的方式工作。
问题是,它在内部进行一些计算,并在图表上显示出向上或向下的箭头。
请告知如何使专家顾问在图表上出现箭头时按正确的方向开立订单。
更确切地说,我只需要知道现在哪个箭头是活动的,我想我可以做其他的事情。
这里有一段代码可以让它更清晰,它是指标中的一个初始化部分
SetIndexBuffer(1, Vverh);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,233);
SetIndexBuffer(2,Vniz);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,234);
预先感谢