[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 475 1...468469470471472473474475476477478479480481482...631 新评论 削除済み 2012.10.30 05:05 #4741 你好。请帮助我修复EA代码。代码中的问题如下:如果价格>或=规定的水平,那么交易开始。价格可以随心所欲地>这些水平,分别,EA开出一堆交易。 我想把代码中的符号">"去掉,只留下"="。 我自己把符号">"去掉了,但在编译时却出现了很多错误。请帮助我。 // < 0 - Dn // > 0 - Up int Signal() { double RSI = iRSI(NULL,15,RSIperiod,RSI_price,SignalBar); double Stoch = iStochastic(NULL,15,Stoch_K,Stoch_D,Stoch_slowing,Stoch_method,Stoch_price,Stoch_mode,SignalBar); double CCI = iCCI(NULL,15,CCI_period,CCI_price,SignalBar); double MA2 = iMA(NULL,15,ma2_period,ma2_shift,ma2_method,ma2_price,SignalBar); double IchiA = iIchimoku(NULL, 15, tenkan, kijun, senkou_span_b, 3, SignalBar); double IchiB = iIchimoku(NULL, 15, tenkan, kijun, senkou_span_b, 4, SignalBar); if(GO && SignalType_1 && RSI >= 65 && Stoch >= 80 && CCI >= 100) {GO=false; return(+1);}//запретить повторный вход (+1); if(GO && SignalType_2 && Bid >= MA2 && RSI >= 65 && Stoch >= 80 && CCI>=100) {GO=false; return(+1);}//запретить повторный вход return(+1); if(GO && SignalType_3 && Bid >= IchiA && RSI >= 65 && Stoch >= 80 && CCI>=100) {GO=false; return(+1);}//запретить повторный вход (+1); if(GO && SignalType_1 && RSI <= 35 && Stoch <= 20 && CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1); if(GO && SignalType_2 && Ask <= MA2 && RSI <= 35 && Stoch <= 20 && CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1); if(GO && SignalType_3 && Ask <= IchiB && RSI <= 35 && Stoch <= 20&& CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1); if(OrdersTotal()==0)GO=true; return(0); }这是代码的一部分,如果你需要整个代码,我将把它贴出来。提前感谢。 Alexander 2012.10.30 05:50 #4742 在条件检查前加一行如果(OrdersTotal()> 0)返回(0)。我又看了看,发现这个代码不是你的,你也不知道怎么修。你的代码中已经有了一切,寻找它下订单的地方,以及为什么它忽略了GO变量。 削除済み 2012.10.30 06:57 #4743 Roger:在条件检查前加一行如果(OrdersTotal()>0)返回(0)。又看了看,我明白了--代码不是你的,你也不知道如何修复它。你的代码中已经有了一切,寻找它下订单的地方,以及为什么它忽略了GO变量。 这段代码不是我的,而是根据我的服务条款为我写的,我不知道如何修复它,这就是为什么我处理 它。谢谢你的答复 Roman Kutemov 2012.10.30 07:34 #4744 下午好。 请你告诉我(在私人信息中),周末的报价在哪里? [删除] 2012.10.30 07:43 #4745 大家好!需要一些帮助。我不知道错误在哪里! 关键是这一点。我们在时间上设定参考点,比方说29/10/2012 00:00。创建一个数组,把从起点到此刻的数值放进去。然后检查我设定的那些价格偏差的条件。如果我们达到偏差==10。我们显示一条信息,并将该点从我们之前设定的点转移到提前2天。并重复这一程序。问题是下面的数组应该不断地补充,比方说从一个点29/10/2012 00:00开始,我们没有足够的值,每一个新形成的分钟条都应该放在其中,并进行检查,参考点不会被转移,直到条件吻合==10次。但由于某些原因,每次打勾 时,它又开始从起点开始计算数值!!!!。 帮助解决这个问题!谢谢大家的帮助!!。//----------------------------------------------------------------------------------------------------------------------------------- datetime Tochka_History = D'2012.10.10 17:30'; double d[]; double a; int i; int r=0; int j=0; int c=0; datetime time; int bars; string l; //----------------------------------------------------------------------------------------------------------------------------------- int start(){ if(j==0){ l=TimeToStr(Tochka_History,TIME_DATE|TIME_MINUTES); Alert("Точка отсчета - ",l,"; Счетчик c - ",c); if(TimeCurrent()>=Tochka_History){ bars=iBarShift(NULL,PERIOD_M1,Tochka_History,false); time=iTime(NULL,PERIOD_M1,i); ArrayResize(d,bars); for(i=bars;i>0;i--) d[i]=(iHigh(NULL,PERIOD_M1,i)+iLow(NULL,PERIOD_M1,i))/2; for(i=bars;i>0;i--) Uslovie();}}} //----------------------------------------------------------------------------------------------------------------------------------- void Uslovie(){ if(r==0){a=d[i];r=1;} if(a+10*Point<=d[i] && r==1){r=0; c=c+1; Alert("Счетчик c - ",c);} if(c==10){Alert("Значение С достигло 10"); j=1; Smeshenie();}} //----------------------------------------------------------------------------------------------------------------------------------- void Smeshenie(){ Tochka_History=Tochka_History+2*24*60*60; l=TimeToStr(Tochka_History,TIME_DATE|TIME_MINUTES); Alert("Новая точка отсчета времени - ",l); if(TimeDayOfWeek(Tochka_History)==6||TimeDayOfWeek(Tochka_History)==0){ Tochka_History=Tochka_History+1*24*60*60; l=TimeToStr(Tochka_History,TIME_DATE|TIME_MINUTES); Alert("Новая точка отсчета времени, если выпали выходные - ",l);} j=0;} //----------------------------------------------------------------------------------------------------------------------------------- Владимир Тезис 2012.10.30 09:57 #4746 merkulov.artem:大家好!需要一些帮助。我不知道错误在哪里! 关键是这一点。我们在时间上设定参考点,比方说29/10/2012 00:00。创建一个数组,把从起点到此刻的数值放进去。然后检查我设定的那些价格偏差的条件。如果我们达到偏差==10。我们显示一条信息,并将该点从我们之前设定的点转移到提前2天。并重复这一程序。问题是下面的数组应该不断地补充,比方说从一个点29/10/2012 00:00开始,我们没有足够的值,每一个新形成的分钟条都应该放在其中,并进行检查,参考点不会被转移,直到条件吻合==10次。但由于某些原因,每次打勾时它都会从起点开始重新计算数值!!。帮助我解决这个问题谢谢大家的帮助!我第三次看到你的请求,却没有人反应,你为什么这样想?可能人们只是不明白要他们做什么。 如果我们达到偏差==10。我们显示一条信息,并将该点从我们之前设定的点移动了2天.....但由于某些原因,它在每一次打勾时都会从起点开始重新计算数值!!。那是因为你的代码没有检查它从哪里开始。所以它每次都是从起点开始的。请检查你的打印机是否有10的偏差,是否真的将点转移了2天。如果移位10天,航点移位2天,那么在输入下一个刻度之前,有必要检查一下,是否真的有必要输入起始点,或者已经输入。你有一个复杂的方法来了解真相。我相信如果你提出问题本身,它就会告诉你一个更简单的解决方法。P.S. 在所有解决问题的方法中,最简单的方法总是最难找到的,因为为了找到它,你必须回收和筛选一堆垃圾。因此,请随意制定--简单的解决方案并不意味着快速解决。也许这里的人将拯救你的生命不止一天。 Dimka-novitsek 2012.10.30 11:23 #4747 日安!!!。超级超级棒的问题。当测试器到达代码中的正确位置时,我如何停止它?我在帮助中没有看到这样的内容。这根本不可能,而这个功能将是有价值的!2.iCustom函数的行为。在现实中,该函数总是产生一个打印-1(除了当缓冲区的角落里有一个之字形)。但在测试器中都看到了0。为什么有这样的差别?double strela1 = iCustom(NULL, taymfreym, "индикатор", 2, 1); double strela2 = iCustom(NULL, taymfreym, "индикатор", 3, 1); int BUY=0,SELL=0;int ticket; Print ( " strela1 " , strela1 , " strela2 " , strela2 ); --- 2012.10.30 11:38 #4748 Dimka-novitsek: 日安!!!。超级超级棒的问题。当测试器到达代码中的正确位置时,我如何停止它?我在帮助中没有看到这样的内容。这根本不可能,而这个功能将是有价值的! 给他按下 "暂停/中断 "按钮搜索一篇关于如何发送的文章。 Dimka-novitsek 2012.10.30 11:44 #4749 谢谢你!我去找找看! Dimka-novitsek 2012.10.30 11:52 #4750 不能应付这种暂停-中断的模拟,它不起作用!//+------------------------------------------------------------------+ //| советник.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=20 ; extern double takeprofit=50 ; extern double magicnumber=350 ; void BreakPoint(){if (!IsVisualMode()) return(0);keybd_event(19,0,0,0); Sleep(10); keybd_event(19,0,2,0);} //+------------------------------------------------------------------+ //| expert initialization function | ----------------------------------+ int start() { //---- double strela1 = iCustom(NULL, taymfreym, "индикатор", 2, 1); double strela2 = iCustom(NULL, taymfreym, "индикатор", 3, 1); int BUY=0,SELL=0;int ticket; Print ( " strela1 " , strela1 , " strela2 " , strela2 );BreakPoint(); for(int i=1; i<=OrdersTotal(); i++) { if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий { // Анализ ордеров: if (OrderSymbol()!=Symbol( ) )continue; // Не наш фин. инструм if (OrderMagicNumber( ) !=magicnumber)continue; if (OrderType()==0){ BUY++; ticket=OrderTicket( );} if (OrderType()==1) {SELL++;ticket=OrderTicket( );} } } if (strela1>strela2&&BUY==0&&SELL==0){ OrderSend( NULL, OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits), NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE); Print( "strela1>strela2&&BUY==0&&SELL==0 " , GetLastError());BreakPoint(); } if (strela1<strela2&&BUY==0&&SELL==0){ OrderSend( NULL, OP_SELL, lot, Bid, 3, NormalizeDouble( Ask- (stoplos*Point),Digits), NormalizeDouble( Bid+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; Print( "strela1<strela2&&BUY==0&&SELL== " , GetLastError());BreakPoint(); } 1...468469470471472473474475476477478479480481482...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好。请帮助我修复EA代码。代码中的问题如下:如果价格>或=规定的水平,那么交易开始。价格可以随心所欲地>这些水平,分别,EA开出一堆交易。
我想把代码中的符号">"去掉,只留下"="。 我自己把符号">"去掉了,但在编译时却出现了很多错误。请帮助我。
这是代码的一部分,如果你需要整个代码,我将把它贴出来。
提前感谢。
在条件检查前加一行
如果(OrdersTotal()> 0)返回(0)。
我又看了看,发现这个代码不是你的,你也不知道怎么修。你的代码中已经有了一切,寻找它下订单的地方,以及为什么它忽略了GO变量。
在条件检查前加一行
如果(OrdersTotal()>0)返回(0)。
又看了看,我明白了--代码不是你的,你也不知道如何修复它。你的代码中已经有了一切,寻找它下订单的地方,以及为什么它忽略了GO变量。
下午好。
请你告诉我(在私人信息中),周末的报价在哪里?
大家好!需要一些帮助。我不知道错误在哪里!
关键是这一点。我们在时间上设定参考点,比方说29/10/2012 00:00。创建一个数组,把从起点到此刻的数值放进去。然后检查我设定的那些价格偏差的条件。如果我们达到偏差==10。我们显示一条信息,并将该点从我们之前设定的点转移到提前2天。并重复这一程序。问题是下面的数组应该不断地补充,比方说从一个点29/10/2012 00:00开始,我们没有足够的值,每一个新形成的分钟条都应该放在其中,并进行检查,参考点不会被转移,直到条件吻合==10次。但由于某些原因,每次打勾 时,它又开始从起点开始计算数值!!!!。
帮助解决这个问题!谢谢大家的帮助!!。大家好!需要一些帮助。我不知道错误在哪里!
关键是这一点。我们在时间上设定参考点,比方说29/10/2012 00:00。创建一个数组,把从起点到此刻的数值放进去。然后检查我设定的那些价格偏差的条件。如果我们达到偏差==10。我们显示一条信息,并将该点从我们之前设定的点转移到提前2天。并重复这一程序。问题是下面的数组应该不断地补充,比方说从一个点29/10/2012 00:00开始,我们没有足够的值,每一个新形成的分钟条都应该放在其中,并进行检查,参考点不会被转移,直到条件吻合==10次。但由于某些原因,每次打勾时它都会从起点开始重新计算数值!!。
帮助我解决这个问题谢谢大家的帮助!我第三次看到你的请求,却没有人反应,你为什么这样想?可能人们只是不明白要他们做什么。
如果我们达到偏差==10。我们显示一条信息,并将该点从我们之前设定的点移动了2天.....但由于某些原因,它在每一次打勾时都会从起点开始重新计算数值!!。
那是因为你的代码没有检查它从哪里开始。所以它每次都是从起点开始的。请检查你的打印机是否有10的偏差,是否真的将点转移了2天。如果移位10天,航点移位2天,那么在输入下一个刻度之前,有必要检查一下,是否真的有必要输入起始点,或者已经输入。
你有一个复杂的方法来了解真相。我相信如果你提出问题本身,它就会告诉你一个更简单的解决方法。
P.S.
在所有解决问题的方法中,最简单的方法总是最难找到的,因为为了找到它,你必须回收和筛选一堆垃圾。因此,请随意制定--简单的解决方案并不意味着快速解决。也许这里的人将拯救你的生命不止一天。
日安!!!。超级超级棒的问题。当测试器到达代码中的正确位置时,我如何停止它?我在帮助中没有看到这样的内容。这根本不可能,而这个功能将是有价值的!
2.iCustom函数的行为。在现实中,该函数总是产生一个打印-1(除了当缓冲区的角落里有一个之字形)。但在测试器中都看到了0。为什么有这样的差别?
日安!!!。超级超级棒的问题。当测试器到达代码中的正确位置时,我如何停止它?我在帮助中没有看到这样的内容。这根本不可能,而这个功能将是有价值的!
给他按下 "暂停/中断 "按钮
搜索一篇关于如何发送的文章。