[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 482

 
Dimka-novitsek:

谢谢你!!!。放在正常化的...还有该死的--到底发生了什么事,!!!!!!我的头着火了。似乎比高中的几何学更容易。



你不需要ASK和BID的规范化,你需要Sleep(Shh1sec-5secs)。
 

知道了!事情是这样的!让我把话说清楚...非常感谢你的参与,感谢你的帮助。我自己也不明白,请注意上面的代码。有一个条件

 if (strela1<strela2&&SELL==0&&BUY!=0
  ){ udalenie ();

如果......如果......如果没有买单。 我的意思是,有!如果没有买单。它们并不是零。正如你在截图上看到的那样,代码刚刚开始工作,没有买入订单!这就是为什么我们要把它作为一个新项目。好吧,不!而条件得到了满足,尽管它不应该是这样!

这可以从 "专家顾问 "窗口中的打印机信息看出。顺便说一下,当条件得到满足时,订单是完美的,也就是说,它被设定了!这就是为什么我们要把它作为一种工具。

事实证明,我把条件拼错了?

当然,代码中的下一个条件被触发了。

if (strela1<strela2&&BUY==0&&SELL==0){

在这种情况下,这才是应该被触发的。

怎么了!!!?

逻辑条件有什么问题吗?

他们怎么会同时被处决呢?

 

看着,我不明白......这就是同时满足了两个条件!!。也许我是个白痴...但我不明白。这很荒唐。我想我不知道如何写if运算符!"。

伙计,整个代码。

//+------------------------------------------------------------------+
//|                                                     советник.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 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 (   "  НачалоНачал " ); 
//----
   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);
            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( );Print( "BUY++   " , BUY  ,"  ticket ",ticket);}
         if (OrderType()==1) {SELL++;ticket=OrderTicket( );Print( "SELL++   " , SELL  ,"  ticket ",ticket);}    } }
         
  
  if (strela1<strela2&&SELL==0&&BUY!=0
  ){ udalenie ();
              
   OrderSend(Symbol( ), OP_BUY, lot,NormalizeDouble(Ask, Digits), 3*Point, NormalizeDouble( Bid- (stoplos*Point),Digits),   NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE);           
      Print( "strela1<strela2&&BUY==0&&SELL!=0 " , GetLastError()); }
            
  if (strela1>strela2){ udalenie ();
                
   OrderSend(Symbol( ), OP_SELL, lot,NormalizeDouble( Bid, Digits), 3*Point, NormalizeDouble( Ask+ (stoplos*Point),Digits),   NormalizeDouble( Ask-( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; 
        Print( "strela1>strela2&&SELL==0&&BUY!=0 " , GetLastError()); }
      
    if (strela1<strela2&&BUY==0&&SELL==0){    
            
           OrderSend( Symbol( ), OP_BUY, lot, NormalizeDouble(Ask, Digits), 3*Point, 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)); }
           
   if (strela1>strela2&&BUY==0&&SELL==0){  
   
            OrderSend( Symbol( ), OP_SELL, lot,NormalizeDouble( Bid, Digits), 3*Point, 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); }
               
    
   
   
     } Print (   "  Конец " ); BreakPoint();     
//----
   return(0);
  }
//+------------------------------------------------------------------+

void udalenie (){ int total = OrdersTotal();
  for(i=total-1;i>=0;i--)
    {
    OrderSelect(i, SELECT_BY_POS);
   int type   = OrderType();  bool result = false;
    switch(type)
          { 
          case OP_BUY       : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 3*Point, CLR_NONE ); break;
          case OP_SELL      : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 3*Point, CLR_NONE ); break; 
          }
    if(!result)
      {
      int error =  GetLastError(); 
      string errorcomment = "Неудалось закрыть ордер №" + OrderTicket() + " " + Symbol() + " " + OrderType() + " " + error; 
      Print(errorcomment);
      }  
    }       
   }

解释,只是为了让它更容易...在我看来,标准订单的挑选。分别在BUY++、SELL++变量中读取未结订单。

然后这些变量参与到逻辑条件中。其余的似乎并不重要,尽管谁知道呢。

其实,我在版画中看到的东西很清楚。

 
aedu:
我为工作 "一键 "下载了一个EA,编译了--没有错误,但除了角落里的 "脸 "没有任何显示。帮助!!!!!!!!!!!!!
McTrader_"+Symbol()+"_command.dat "文件,我认为它需要一个类似于 EA命令的脚本 的东西。它本身并不创造它。因此,请联系开发商进行解释。
 
Dimka-novitsek:

看着,我不明白......这就是同时满足了两个条件!!。也许我是个白痴...但我不明白。这很荒唐。我想我不知道如何写if运算符!"。

伙计,整个代码。

解释,只是为了让它更容易...在我看来,标准订单的挑选。在BUY++、SELL++变量中单独卖出开单。

然后这些变量参与到逻辑条件中。其余的似乎并不重要,尽管谁知道呢。

其实,我在版画中看到的东西很清楚。

你能给我一个 "指标 "吗?

虽说不

 

什么是大人物,他为什么这么激动?
 
Dimka-novitsek:

看着,我不明白......这就是同时满足了两个条件!!。也许我是个白痴...但我不明白。这很荒唐。我想我不知道如何写if运算符!"。

伙计,整个代码。

解释,只是为了让它更容易...在我看来,标准订单的挑选。分别在BUY++、SELL++变量中读取未结订单。

然后这些变量参与到逻辑条件中。其余的似乎并不重要,尽管谁知道呢。

其实,我在版画中看到的东西很清楚。

大量的逻辑和技术错误。开单的逻辑是无法追溯的(我不得不发挥想象力)。你需要自己学习,挑选你自己的马虎的代码(直到它 "变直")或研究其他人的代码。我为你做了你的代码。- 它能帮助你吗?

P.S.正如我之前所说,你不需要为测试者规范价格。但在执行交易订单 时出现 "错误的价格 "错误的可能原因之一是滑点,你有3*点(当转换为int)=0。

附加的文件:
rcjipewc.mq4  6 kb
 
谢谢你!!!!!
 
san44es:

朋友们,给你们一个忠告!

有一个自定义函数可以计算背景时间框架第5条的低价,我如何让它计算特定时间框架的价格?

锂离子电池
 

谢谢你!现在的代码更简单了。当然更简单。

谢谢你的滑翔机!

循环for (int A = 0; A <100; A++) //我们不需要这种条形搜索,它只是帮助我从日志中看到EA下单的位置正是箭头的位置或错误数字的位置。关键是在测试器中没有信号。我在同一份打印件上看到,变量arrow1和arrow2在所有条形上都只有零,这就是我摆脱困境的方法。

当然,这个周期可以从任何一个方向计算。但我又看到到处都是129号错误!我在图表中看到了指标的箭头,我想确定这些订单是由他们下的。因此,在开始时的截图中,变量箭头1和2是相等的,进一步从零开始的17条,顺序被设定--好的,超级好的!然后打印机的信息说有一个卖出的某某勾,而且进一步的条形图上的箭头是相等的 - great!!!!。