[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 483 1...476477478479480481482483484485486487488489490...631 新评论 Dimka-novitsek 2012.11.01 14:03 #4821 接下来,你必须删除红色箭头上的卖点,然后买入。突然间有两个订单被删除了!!!。两份订单,一份是明确设定的,另一份似乎没有!!!。好吧,让它见鬼去吧......。出现了错误129,而且没有订单。如果我一直这样让所有优秀的志愿者帮助者感到困惑,我很抱歉。 Dimka-novitsek 2012.11.01 14:05 #4822 //+------------------------------------------------------------------+ //| советник.mq4 | //| Copyright 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #include <WinUser32.mqh> extern double lot = 1; extern int taymfreym = 0 ; extern double stoplos = 200 ; extern double takeprofit = 500 ; extern int magicnumber = 350; extern int ControlBar = 1; // номер бара на котором снимаем показания индикатора void BreakPoint() {//if (!IsVisualMode()) return(0); keybd_event (19,0,0,0); Sleep (10); keybd_event (19,0,2,0); } //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- Print ( " НачалоНачал " ); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int i; int start() { //Print ( " Начало " ); //---- for (int A = 0; A <100 ; A++) // ни к чему этот перебор баров { double strela1 = iCustom (NULL, taymfreym, "индикатор", 2, A), strela2 = iCustom (NULL, taymfreym, "индикатор", 3, A); int BUY = 0, SELL = 0, ticket; Print (A, " strela1 " , strela1 , " strela2 " , strela2); for (int i = OrdersTotal() - 1; i >= 0; i--) { if (!OrderSelect (i - 1, SELECT_BY_POS)) continue; // Если есть следующий if (OrderSymbol() != Symbol()) continue; // Не наш фин. инструм if (OrderMagicNumber() != magicnumber) continue; int type = OrderType(); if (type > 1) continue; ticket = OrderTicket(); if (type == 0) {BUY++; Print ("BUY++ " , BUY ," ticket ", ticket); break;} if (type == 1) {SELL++; Print ("SELL++ " , SELL ," ticket ", ticket); break;} } if (strela1 < strela2) { if (SELL > 0) udalenie (OP_SELL); if (BUY == 0) { OrderSend (Symbol( ), OP_BUY, lot,NormalizeDouble(Ask, Digits), 3, NormalizeDouble( Bid- (stoplos*Point),Digits), NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE); Print ("strela1>strela2&&BUY==0&&SELL==0 " , GetLastError() ," Ask ",Ask," stoplos= NormalizeDouble( Bid- (stoplos*Point),Digits) ", NormalizeDouble ( Bid- (stoplos*Point),Digits)," takeprofit= NormalizeDouble( Ask+( takeprofit*Point),Digits) ", NormalizeDouble( Ask+( takeprofit*Point),Digits)); } } else if (strela1 > strela2) { if (BUY > 0) udalenie (OP_BUY); if (SELL == 0) { OrderSend (Symbol( ), OP_SELL, lot, NormalizeDouble (Bid, Digits), 3, NormalizeDouble( Ask+ (stoplos*Point),Digits), NormalizeDouble( Ask-( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; Print ("strela1>strela2&& OP_SELL " , GetLastError() ," Bid ",Bid," stoplos= NormalizeDouble( Ask- (stoplos*Point),Digits) ", NormalizeDouble (Ask- (stoplos*Point),Digits)," takeprofit= NormalizeDouble( Bid+( takeprofit*Point),Digits) ", NormalizeDouble(Ask+( takeprofit*Point),Digits)); Print( "strela1>strela2&& OP_SELL " , GetLastError() ," (stoplos*Point) ",(stoplos*Point)," Point ", Point," Digits ", Digits); } } } BreakPoint(); //---- return (0); } //+------------------------------------------------------------------+ void udalenie (int Type = -1) { int total = OrdersTotal(); for (i = total - 1; i >= 0; i--) { if (!OrderSelect (i, SELECT_BY_POS)) continue; if (OrderSymbol() != Symbol()) continue; // Не наш фин. инструм if (OrderMagicNumber( ) != magicnumber) continue; int type = OrderType(); if (type > 1) continue; if (Type > -1) if (Type != type) continue; bool result = false; switch (type) { case OP_BUY : result = OrderClose (OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 3, CLR_NONE ); break; case OP_SELL : result = OrderClose (OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 3, CLR_NONE ); break; } if (!result) { int error = GetLastError(); string errorcomment = "Неудалось закрыть ордер №" + OrderTicket() + " " + Symbol() + " " + OrderType() + " " + error; Print (errorcomment); } } } Dimka-novitsek 2012.11.01 14:06 #4823 等等,对不起,我把单子放得满满的!"。 elmucon 2012.11.01 14:08 #4824 Dimka-novitsek: 接下来,你必须删除红色箭头上的卖点,然后买入。突然间有两个订单被删除了!!!。两份订单,一份是明显设定好的,另一份是似乎没有的!!。好吧,让它见鬼去吧......。出现了错误129,而且没有订单。你会原谅我让所有优秀的志愿者帮助者感到困惑...... 迪姆卡--在我的私人信息中给我你的代码--我会乱来的--在我的"圣杯"被测试的时候,我没有什么事可做......和我的大脑需要锻炼......而且不要忘记放纵... 削除済み 2012.11.01 14:28 #4825 大家好,我是一个新手,所以请不要疯狂地踢我。积累了一些问题。1) 我在哪里可以下载完整的历史报价。我知道MT4终端默认从MetaQuotes下载报价,但从2012年1月到2012年10月有一个缺口,重新下载时没有关闭。这就使人对整个历史产生了怀疑,从那里开始。2)历史上有1999年以前的日期,它们的数据有些奇怪,非常少,甚至按分钟计算。有没有人把它们考虑进去或删除它们。3)还有一些其他的胡言乱语在进行测试。我决定尝试写一个 简单的专家顾问:当Open[1]<MA1 && Close[1]>MA1时买入。在测试时,MA(指数)总是显示不同的值,这取决于初始测试日期。问题出在哪里? TarasBY 2012.11.01 14:32 #4826 Dimka-novitsek:谢谢你!现在的代码更简单了。当然更简单。谢谢你的滑翔机!循环for (int A = 0; A <100; A++) //我们不需要这种条形搜索,它只是帮助我从日志中看到EA下单的位置正是箭头的位置或错误数字的位置。关键是在测试器中没有信号。我在同一份打印件上看到,变量arrow1和arrow2在所有条形上都只有零,这就是我摆脱困境的方法。 当然,这个周期可以从任何一个方向计算。但我又看到到处都是129号错误!我在图表中看到了指标的箭头,我想确定这些订单是由他们下的。因此,在开始时的截图中,变量箭头1和2是相等的,进一步从零开始的17条,顺序被设定--好的,超级好的!然后打印机的信息说有一个卖出的某某勾,而且进一步的条形图上的箭头是相等的 - great!!!!。关于周期。for (int A = 0; A <100 ; A++)在你做事(写代码)之前,你需要对你想要得到的东西有一个明确的想法。你在每个tick 上都有这个指标,你可以对它的读数有一个完整的布局。通过这种方式(循环),你将在变量strela1和strela2中输出第100 条的读数,你可以通过这些读数进行交易(去年冬天)。:)))我一下子没注意到--你把交易操作纳入了指标读数的循环中--一个完全的P...当然,你最清楚。:))) Dimka-novitsek 2012.11.01 14:55 #4827 不,我需要循环看到进入/退出,也就是说,测试机器人。它是如何下订单的,它是如何犯错的。嗯,它在测试器中没有测试... TarasBY 2012.11.01 15:22 #4828 Dimka-novitsek: 不,我需要循环看到进入/退出,也就是说,测试机器人。它是如何下订单的,它是如何犯错的。它在测试器中没有测试... 我能说什么呢?好运!P.S. 在我的代码中发现了一个与改变订单枚举方向有关的小错误,甚至减少了代码,并尝试在测试器中创建优化功能(自己检查)。 而且我怀疑你没有从指标中正确读出数据。该指标有几个缓冲区(在我的版本中有4个)。有些人,如那些画箭头的人--只有箭头所在的地方才有一个值。为了在这样的缓冲区中搜索信号,你需要组织一个循环(while()),其条件是返回值不等于(在我的变体EMPTY_VALUE)一个 "空 "值。在有 "无箭头 "的地方(在这些缓冲区),必须通过比较返回值和价格来寻找信号。 附加的文件: lxvhlxyx.mq4 5 kb 削除済み 2012.11.01 17:14 #4829 不管是白天还是晚上都很好!有一个问题要问mt4的开发者和其他所有人。MT客户端的最低系统要求是什么?我想在我的旧硬件上运行它:Athlon 800mg,512mb,XP SP3。当我运行MT 4或5时,它在2秒后就关闭了。问题显然不在绞盘或硬件上,这个硬件运行的是带调试器的Visual Studio(我自己是个程序员),系统中没有出现异常(因为我的调试器不起作用)。我猜客户本身不喜欢某些东西,结果就关闭了。那么问题来了,什么是原因,什么是mt不喜欢的,真正的CPU频率?)) Paladin80 2012.11.01 17:17 #4830 Dimka-novitsek: 等等,对不起,我把单子放得满满的!"。 迪米特里,把你的想法留给自己,在这里发表你的问题。 1...476477478479480481482483484485486487488489490...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
接下来,你必须删除红色箭头上的卖点,然后买入。突然间有两个订单被删除了!!!。两份订单,一份是明显设定好的,另一份是似乎没有的!!。好吧,让它见鬼去吧......。出现了错误129,而且没有订单。你会原谅我让所有优秀的志愿者帮助者感到困惑......
迪姆卡--在我的私人信息中给我你的代码--我会乱来的--在我的"圣杯"被测试的时候,我没有什么事可做......和我的大脑需要锻炼......而且不要忘记放纵...
大家好,我是一个新手,所以请不要疯狂地踢我。积累了一些问题。
1) 我在哪里可以下载完整的历史报价。我知道MT4终端默认从MetaQuotes下载报价,但从2012年1月到2012年10月有一个缺口,重新下载时没有关闭。这就使人对整个历史产生了怀疑,从那里开始。
2)历史上有1999年以前的日期,它们的数据有些奇怪,非常少,甚至按分钟计算。有没有人把它们考虑进去或删除它们。
3)还有一些其他的胡言乱语在进行测试。我决定尝试写一个 简单的专家顾问:当Open[1]<MA1 && Close[1]>MA1时买入。在测试时,MA(指数)总是显示不同的值,这取决于初始测试日期。问题出在哪里?
谢谢你!现在的代码更简单了。当然更简单。
谢谢你的滑翔机!
循环for (int A = 0; A <100; A++) //我们不需要这种条形搜索,它只是帮助我从日志中看到EA下单的位置正是箭头的位置或错误数字的位置。关键是在测试器中没有信号。我在同一份打印件上看到,变量arrow1和arrow2在所有条形上都只有零,这就是我摆脱困境的方法。
当然,这个周期可以从任何一个方向计算。但我又看到到处都是129号错误!我在图表中看到了指标的箭头,我想确定这些订单是由他们下的。因此,在开始时的截图中,变量箭头1和2是相等的,进一步从零开始的17条,顺序被设定--好的,超级好的!然后打印机的信息说有一个卖出的某某勾,而且进一步的条形图上的箭头是相等的 - great!!!!。
关于周期。
在你做事(写代码)之前,你需要对你想要得到的东西有一个明确的想法。你在每个tick 上都有这个指标,你可以对它的读数有一个完整的布局。通过这种方式(循环),你将在变量strela1和strela2中输出第100 条的读数,你可以通过这些读数进行交易(去年冬天)。:)))我一下子没注意到--你把交易操作纳入了指标读数的循环中--一个完全的P...当然,你最清楚。:)))
不,我需要循环看到进入/退出,也就是说,测试机器人。它是如何下订单的,它是如何犯错的。它在测试器中没有测试...
我能说什么呢?好运!
P.S. 在我的代码中发现了一个与改变订单枚举方向有关的小错误,甚至减少了代码,并尝试在测试器中创建优化功能(自己检查)。
而且我怀疑你没有从指标中正确读出数据。该指标有几个缓冲区(在我的版本中有4个)。有些人,如那些画箭头的人--只有箭头所在的地方才有一个值。为了在这样的缓冲区中搜索信号,你需要组织一个循环(while()),其条件是返回值不等于(在我的变体EMPTY_VALUE)一个 "空 "值。在有 "无箭头 "的地方(在这些缓冲区),必须通过比较返回值和价格来寻找信号。
不管是白天还是晚上都很好!有一个问题要问mt4的开发者和其他所有人。
MT客户端的最低系统要求是什么?
我想在我的旧硬件上运行它:Athlon 800mg,512mb,XP SP3。当我运行MT 4或5时,它在2秒后就关闭了。问题显然不在绞盘或硬件上,这个硬件运行的是带调试器的Visual Studio(我自己是个程序员),系统中没有出现异常(因为我的调试器不起作用)。我猜客户本身不喜欢某些东西,结果就关闭了。那么问题来了,什么是原因,什么是mt不喜欢的,真正的CPU频率?))
等等,对不起,我把单子放得满满的!"。