[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 570 1...563564565566567568569570571572573574575576577...631 新评论 Nikita Zubarov 2012.12.04 12:32 #5691 不是那个))那个,那个更有意义 附加的文件: sellbuy_2.mq4 3 kb Nikita Zubarov 2012.12.04 12:42 #5692 请看第二位顾问,也许它能给你一些想法.....,今晚一直在作曲。) [Deleted] 2012.12.04 18:19 #5693 Frostr: 请看第二位顾问,也许它能给你一些想法.....,今晚一直在作曲。) 我有这个,试试吧。//+------------------------------------------------------------------+ extern int stoploss = 0, // уровень выставления SL, если 0, то SL не выставляется takeprofit = 0, // уровень выставления TP, если 0, то TP не выставляется Magic = 123456; // уникальный номер ордера extern double Lot = 0.1; // объем ордера extern int slippage = 3; // Максимально допустимое отклонение цены для рыночных ордеров extern int MaxOrders = 3; // Максимально допустимое количество ордеров BUY или SELL extern int CycleCount = 5; // количество попыток открытия ордера //+------------------------------------------------------------------+ double SL,TP; int Count,Total,LastTotal; string ord; //+------------------------------------------------------------------+ int start() { Total=fTotal(); if(Total==LastTotal&&LastTotal!=0)return(0); int Buy,Sell; if(Count==0) { MathSrand(TimeLocal()); if(NormalizeDouble(MathMod(MathRand(),2),0)==0)ord="Buy";else ord="Sell"; } if(ord=="Buy")OrdCount("Buy"); if(ord=="Sell")OrdCount("Sell"); if(Count>=MaxOrders)return(0); if(ord=="Buy") { if(takeprofit!=0)TP=NormalizeDouble(Ask+takeprofit*Point,Digits);else TP=0; if(stoploss!=0)SL=NormalizeDouble(Ask-stoploss*Point,Digits);else SL=0; OPENORDER("Buy"); if(takeprofit!=0)TP=NormalizeDouble(Bid-takeprofit*Point,Digits);else TP=0; if(stoploss!=0)SL=NormalizeDouble(Bid+stoploss*Point,Digits);else SL=0; OPENORDER("Sell"); } if(ord=="Sell") { if(takeprofit!=0)TP=NormalizeDouble(Bid-takeprofit*Point,Digits);else TP=0; if(stoploss!=0)SL=NormalizeDouble(Bid+stoploss*Point,Digits);else SL=0; OPENORDER("Sell"); if(takeprofit!=0)TP=NormalizeDouble(Ask+takeprofit*Point,Digits);else TP=0; if(stoploss!=0)SL=NormalizeDouble(Ask-stoploss*Point,Digits);else SL=0; OPENORDER("Buy"); } LastTotal=fTotal(); return(0); } //+------------------------------------------------------------------+ void OPENORDER(string ord) { int error,err; while(true) { error=-1; if(ord=="Buy" )error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"BUY",Magic,0,Blue); if(ord=="Sell")error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,"SELL",Magic,0,Red); if(error==-1) //неудачная покупка OK { ShowERROR();err++;Sleep(2000);RefreshRates(); } if (err>=CycleCount)break; } return; } //+------------------------------------------------------------------+ void ShowERROR() { int err=GetLastError(); switch(err) { case 1 : return; case 2 : Alert("Нет связи с торговым сервером ",Symbol());return; case 3 : Alert("Error неправильные параметры ",Symbol());return; case 130 : Alert("Error близкие стопы Ticket ",Symbol());return; case 134 : Alert("Недостаточно денег ",Symbol());return; case 146 : Alert("Error Подсистема торговли занята ",Symbol());return; case 129 : Alert("Error Неправильная цена ",Symbol());return; case 131 : Alert("Error Неправильный объем ",Symbol());return; case 4200: Alert("Error Объект уже существует ",Symbol());return; default : Alert("Error " ,err," ",Symbol());return; } } //+------------------------------------------------------------------+ int fTotal() { int Tot=OrdersTotal(); int BuyCount=0,SellCount=0; if(Tot>0) { for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderSymbol()==Symbol()&&(Magic==0||OrderMagicNumber()==Magic)) { switch (OrderType()) { case OP_BUY :BuyCount++; break; case OP_SELL:SellCount++;break; } } } } } return(BuyCount+SellCount); } //+------------------------------------------------------------------+ int OrdCount(string ord) { int Type;Count=0; if(ord=="Buy")Type=OP_BUY; if(ord=="Sell")Type=OP_SELL; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderSymbol()==Symbol()) { if(OrderType()==Type) { if(Magic==0||OrderMagicNumber()==Magic)Count++; } } } } return(Count); } //+------------------------------------------------------------------+ Nikita Zubarov 2012.12.04 18:30 #5694 我有500个订单或1000个订单,如何减少? [Deleted] 2012.12.04 18:40 #5695 Frostr: 我有500个订单或1000个订单,如何减少? 他是谁? Nikita Zubarov 2012.12.04 18:44 #5696 rigonich: 他是谁? 议员 ) [Deleted] 2012.12.04 18:47 #5697 Frostr: 顾问 ) 显然是一位顾问,但哪一位呢? Nikita Zubarov 2012.12.04 18:52 #5698 我把你的数据放到专家顾问中,并运行了它 )这不就是它应该发挥的作用吗? Nikita Zubarov 2012.12.04 18:55 #5699 file://localhost/C:/Users/mv/Desktop/StrategyTester.htm [Deleted] 2012.12.04 19:05 #5700 Frostr:我把你的数据放到专家顾问中,并运行了它 )这不是正确的做法吗? 我不明白什么样的数据?我只是给了你EA代码。编译并运行它,只要给它一个名字。我还没有测试,我只是按结果重新编译,然后把它放出来。如果它不能正常工作,请告诉我,我将努力找出原因。 1...563564565566567568569570571572573574575576577...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
请看第二位顾问,也许它能给你一些想法.....,今晚一直在作曲。)
我有这个,试试吧。
我有500个订单或1000个订单,如何减少?
他是谁?
他是谁?
议员 )
顾问 )
显然是一位顾问,但哪一位呢?
我把你的数据放到专家顾问中,并运行了它 )
这不就是它应该发挥的作用吗?
我把你的数据放到专家顾问中,并运行了它 )
这不是正确的做法吗?
我不明白什么样的数据?我只是给了你EA代码。编译并运行它,只要给它一个名字。我还没有测试,我只是按结果重新编译,然后把它放出来。如果它不能正常工作,请告诉我,我将努力找出原因。