[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 476 1...469470471472473474475476477478479480481482483...631 新评论 Dimka-novitsek 2012.10.30 11:08 #4751 AA! 2012.10.30 14:07:08 2012.06.05 05:30 EA EURUSD,M30: dll调用不允许;'user32.dll'-'keybd_event'我想我搞清楚了。我怎样才能解锁Dll? Dimka-novitsek 2012.10.30 11:13 #4752 不,它看起来很好!!!。 Dimka-novitsek 2012.10.30 11:25 #4753 缓冲区在测试中总是为0!!。让它见鬼去吧,我将在真实的情况下进行测试--我将向后写一个200条的正向循环,我将寻找入口点! Dimka-novitsek 2012.10.30 12:12 #4754 对不起,我已经找了半个小时,想知道我的括号哪里不平衡了,或者这是什么意思?我把指纹放进去了,这里有...它没有编译,但它发誓'\end_of_program' - 不平衡的左括号 C:\Alpari\experts\customer.mq4 (94, 1) Dimka-novitsek 2012.10.30 12:20 #4755 在这里,我很抱歉...我重新检查了八次括号 -- 好吧,它们是平衡的!"。均衡的!或者他们是吗?//+------------------------------------------------------------------+ //| советник.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 init() { //---- Print ( " init " ); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() {Print ( " Начало " ); //---- for( int A=0; A<100 ; A++){ double strela1 = iCustom(NULL, taymfreym, "индикатор", 2, A); double strela2 = iCustom(NULL, taymfreym, "индикатор", 3, A); int BUY=0,SELL=0;int ticket; Print ( A, " strela1 " , strela1 , " strela2 " , strela2 ); 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( Symbol( ), 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() ," Ask ",Ask, " NormalizeDouble( Bid- (stoplos*Point),Digits) ", NormalizeDouble( Bid- (stoplos*Point),Digits)," NormalizeDouble( Ask+( takeprofit*Point),Digits) ", NormalizeDouble( Ask+( takeprofit*Point),Digits)); } if (strela1<strela2&&BUY==0&&SELL==0){ OrderSend( Symbol( ), 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() ," Bid ",Bid, " NormalizeDouble( Ask- (stoplos*Point),Digits) ", NormalizeDouble( Ask- (stoplos*Point),Digits), " NormalizeDouble( Bid+( takeprofit*Point),Digits) ", NormalizeDouble( Bid+( takeprofit*Point),Digits); } if (strela1>strela2&&BUY==0&&SELL!=0){ OrderSelect(ticket, SELECT_BY_TICKET); OrderClose( ticket , OrderLots( ) , OrderOpenPrice( ) , 3, CLR_NONE); OrderSend(Symbol( ), 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&&SELL==0&&BUY!=0){ OrderSelect(ticket, SELECT_BY_TICKET); OrderClose( ticket , OrderLots( ) , OrderOpenPrice( ) , 3, CLR_NONE); OrderSend(Symbol( ), OP_SELL, lot, Bid, 3, NormalizeDouble( Ask- (stoplos*Point),Digits), NormalizeDouble( Bid+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; Print( "strela1<strela2&&SELL==0&&BUY!=0 " , GetLastError());BreakPoint(); } } Print ( " Конец " ); //---- return(0); } //+------------------------------------------------------------------+ Михаил 2012.10.30 12:26 #4756 Dimka-novitsek: 对不起,我已经找了半个小时的支架,这些支架是不平衡的。我只是把指纹放进去,然后就可以了......它没有编译,但它发誓'\end_of_program' - 不平衡的左括号C:\Alpari\experts\customer.mq4 (94, 1) 乍一看,最后一个大括号(用于main())不见了。你的代码以一个分支的 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(); }这是为上述代码准备的 Dimka-novitsek 2012.10.30 12:29 #4757 谢谢你!!!。我最好看一下代码...我还在一张纸上一个一个地数着括号--平衡!!!。 Dimka-novitsek 2012.10.30 12:32 #4758 分支点在哪里?还是我很笨...我的意思是,我们只是在条件下开了一个订单! [删除] 2012.10.30 12:32 #4759 drknn:...你有一个复杂的方法来了解真相。我相信,如果你向人们提出问题本身,他将告诉你一个更简单的解决方法。P.S. 在所有解决问题的方法中,最简单的方法总是最难找到的,因为为了找到它,你必须回收和筛选一堆垃圾。因此,请自由制定--简单的解决方案并不意味着快速解决。也许这里的人将拯救你的生命不止一天。 好的。我试着把问题的要点告诉你,也许有人会给你一个提示或帮助我使它更容易解决。我们在1分钟图上工作。我们取29/10/12的00:00图表上的一分钟柱状物(高+低/2-柱状物的平均值)--这将是起点。 然后我们检查与此价格向上的偏差10个点(每个正确的偏差是+1)。当我们达到与起点的10点偏差时--+1计数器;我们开始检查进一步的偏差,但从我们达到10点偏差的地方开始,并等待价格的下一个10点上涨。例如,我们得到。如果(起始点)+10点<=价格(我们使用从起始点开始的所有条形的后续价格。)我们得到一个计数器=计数器+1;并且我们已经从这个点-(起始点+10点) 开始起始点。如果 (起始点+10 点)+10点<=价格(使用从参考点开始的所有后续条形价格),我们得到counter=Counter+1;并且我们从这个点开始-(起始点+10 点)+10点。如果(起始点+10 点+10 点)+10点<=价格(我们使用从参考点开始的所有条形的后续价格。)我们得到counter=Counter+1;并且我们从这个点开始-(起始点+10 点+ 10点)+10点。等等...直到我们达到一个10的计数器(计数器==10)。 每一个新形成的1分钟条形图(高+低/2-条形图的平均值),我们都要检查这个条件,并 等到计数器达到10(计数器==10)。假设两天过去了,每形成一个新的柱状物,我们就检查并转移,如果条件正确的话.....。当我们达到counter =10时 - 我们输出 "Counter == 10 "的信息。我们将起点比用户最初定义的点提前2天,即从29/10/12的00:00移动到31/10/12的00:00,并重复循环。重复这个循环,就这样在时间表中移动。也就是说,我们应该把新形成的条形图画出来(高+低/2-条形图的平均价值)。并检查条件,如果是正确的,就按上述方法移位。我曾试图通过一个数组来实现它,但它非常混乱,并给出了错误的值帮助我如何实现这个算法!? PapaYozh 2012.10.30 12:33 #4760 Dimka-novitsek: 在这里,我很抱歉...我重新检查了八次支架--好吧,它们是平衡的!"。均衡的!或者他们是吗? 在这个代码中。 Print( "strela1>strela2&&BUY==0&&SELL==0 " , GetLastError() ," Ask ",Ask, " NormalizeDouble( Bid- (stoplos*Point),Digits) ", NormalizeDouble( Bid- (stoplos*Point),Digits)," NormalizeDouble( Ask+( takeprofit*Point),Digits) ", NormalizeDouble( Ask+( takeprofit*Point),Digits)); } 移动倒置的逗号(即行尾的逗号)。 1...469470471472473474475476477478479480481482483...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
对不起,我已经找了半个小时的支架,这些支架是不平衡的。我只是把指纹放进去,然后就可以了......它没有编译,但它发誓'\end_of_program' - 不平衡的左括号C:\Alpari\experts\customer.mq4 (94, 1)
乍一看,最后一个大括号(用于main())不见了。
你的代码以一个分支的
这是为上述代码准备的
...
你有一个复杂的方法来了解真相。我相信,如果你向人们提出问题本身,他将告诉你一个更简单的解决方法。
P.S.
在所有解决问题的方法中,最简单的方法总是最难找到的,因为为了找到它,你必须回收和筛选一堆垃圾。因此,请自由制定--简单的解决方案并不意味着快速解决。也许这里的人将拯救你的生命不止一天。
好的。我试着把问题的要点告诉你,也许有人会给你一个提示或帮助我使它更容易解决。
我们在1分钟图上工作。我们取29/10/12的00:00图表上的一分钟柱状物(高+低/2-柱状物的平均值)--这将是起点。
然后我们检查与此价格向上的偏差10个点(每个正确的偏差是+1)。
当我们达到与起点的10点偏差时--+1计数器;我们开始检查进一步的偏差,但从我们达到10点偏差的地方开始,并等待价格的下一个10点上涨。
例如,我们得到。
如果(起始点)+10点<=价格(我们使用从起始点开始的所有条形的后续价格。)我们得到一个计数器=计数器+1;并且我们已经从这个点-(起始点+10点) 开始起始点。
如果 (起始点+10 点)+10点<=价格(使用从参考点开始的所有后续条形价格),我们得到counter=Counter+1;并且我们从这个点开始-(起始点+10 点)+10点。
如果(起始点+10 点+10 点)+10点<=价格(我们使用从参考点开始的所有条形的后续价格。)我们得到counter=Counter+1;并且我们从这个点开始-(起始点+10 点+ 10点)+10点。
等等...
直到我们达到一个10的计数器(计数器==10)。
每一个新形成的1分钟条形图(高+低/2-条形图的平均值),我们都要检查这个条件,并 等到计数器达到10(计数器==10)。假设两天过去了,每形成一个新的柱状物,我们就检查并转移,如果条件正确的话.....。
当我们达到counter =10时 - 我们输出 "Counter == 10 "的信息。我们将起点比用户最初定义的点提前2天,即从29/10/12的00:00移动到31/10/12的00:00,并重复循环。
重复这个循环,就这样在时间表中移动。
也就是说,我们应该把新形成的条形图画出来(高+低/2-条形图的平均价值)。并检查条件,如果是正确的,就按上述方法移位。
我曾试图通过一个数组来实现它,但它非常混乱,并给出了错误的值帮助我如何实现这个算法!?
在这里,我很抱歉...我重新检查了八次支架--好吧,它们是平衡的!"。均衡的!或者他们是吗?
在这个代码中。
移动倒置的逗号(即行尾的逗号)。