MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 799

 
Artyom Trishkin :
버퍼의 쓰레기. 먼저 그려진 모든 버퍼(화살표 버퍼인 경우)에 빈 값을 입력한 다음 표시기 계산을 수행해야 합니다 . 모바일에서는 코드가 안보여서 확답은 못드리겠네요.

즉, ArrayInitialize를 먼저 수행합니까?

 
Roman Sharanov :

즉, ArrayInitialize를 먼저 수행합니까?

그것은 이미 거기에 있습니다.
표시기 루프에서 루프 인덱스가 있는 버퍼 셀의 버퍼 에 "빈 값" 값을 할당해야 합니다.
 
Artyom Trishkin :
그것은 이미 거기에 있습니다.
표시기 루프에서 루프 인덱스가 있는 버퍼 셀의 버퍼 에 "빈 값" 값을 할당해야 합니다.

알았어 고마워

 
Artyom Trishkin :

네. 연구 예:

감사합니다 지식의 원천으로 가겠습니다 :-)


버퍼 에 "빈 값" 값을 할당해야 합니다.


각 배열을 명시적으로 0으로 설정해야 합니까?

이 쓰레기를 PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0)을 통해 처리할 수 있습니까?

 
psyman :

감사합니다 지식의 원천으로 가겠습니다 :-)



각 배열을 명시적으로 0으로 설정해야 합니까?

이 쓰레기를 PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0)을 통해 처리할 수 있습니까?

편집기에서 함수 이름에 커서를 놓고 F1 키를 누르면 기적이 나타납니다.
 
로봇을 다운로드했는데 이 오류의 원인은 무엇입니까?
모든 것이 봇을 설치한 모든 사람에게 작동합니다. 저는 이와 같은 봇을 가지고 있습니다. 터미널을 다시 설치하고 관리자 권한으로 열었지만 아무 것도 도움이되지 않았습니다.

 
컴파일하는 동안 오류나 경고가 없습니다. 사실, 그는 포지션을 열지 않습니다(그는 매수 포지션에서 1개의 포지션만 열고 테이크업으로 닫았습니다).

아직 모르는 문제는 무엇입니까?

 //+------------------------------------------------------------------+
//|                                    Test advisor on iDeMarker.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
//------------------параметры советника -------------------------------
extern double lots= 0.01 ; //
extern int Magic= 1111678111 ;
extern int Slippage= 1 ;
//double sell_level=0.7;
//double buy_level=0.3;

extern double StopLoss= 50 ;
extern double TakeProfit= 50 ;
extern double TrailingStop= 30 ;
double SL,TP;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   if ( Digits == 3 || Digits == 5 )
     {
      TakeProfit *= 10 ;
      StopLoss   *= 10 ;
      Slippage   *= 10 ;
     }
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {
   int ticket;
// int cnt,total;

// открытие продаж

   if (CountSell()== 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 1 , 0 )==Low[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 1 , 0 )==Low[ 0 ])
     {
      SL = NormalizeDouble (Bid+StopLoss* Point , Digits );
      TP = NormalizeDouble (Bid-TakeProfit* Point , Digits );
        {

         ticket= OrderSend ( Symbol (),OP_SELL,lots,Bid, 3 , 0 ,Bid-TakeProfit* Point , "macd sample" , 16384 , 0 ,Red);
         if (ticket> 0 )
           {
             // закрытие продаж
             if (CountSell()> 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 0 , 1 )==High[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 0 , 1 )==High[ 0 ])
              {
               for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
                 {
                   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true )
                    {
                     if (OrderMagicNumber()==Magic && OrderType()==OP_SELL)
                         if (OrderClose(OrderTicket(),OrderLots(),Ask,Slippage, clrNONE ))
                           Print ( "Ошибка открытия ордера на покупку !" );
                    }
                 }
              }
           }
        }
     }
// открытие покупок

   if (CountBuy()== 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 0 , 1 )==High[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 0 , 1 )==High[ 0 ])
     {
      TP = NormalizeDouble (Ask+TakeProfit* Point , Digits );
      SL = NormalizeDouble (Ask-StopLoss* Point , Digits );
        {
         ticket= OrderSend ( Symbol (),OP_BUY,lots,Ask, 3 , 0 ,Ask+TakeProfit* Point , "macd sample" , 16384 , 0 ,Green);
         if (ticket> 0 )
           {
             // закрытие покупок    
             if (CountBuy()> 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 1 , 0 )==Low[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 1 , 0 )==Low[ 0 ])
              {
               for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
                 {
                   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true )
                    {
                     if (OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                         if (!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage, clrNONE ))
                           Print ( "Ошибка открытия ордера на продажу!" );
                    }
                 }
              }
           }
        }
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
int CountSell() //проверкна открытие ордеров на продажу
  {
   int count= 0 ;

   for ( int trade= OrdersTotal ()- 1 ; trade>= 0 ; trade--)
     {
       if ( OrderSelect (trade,SELECT_BY_POS,MODE_TRADES)== true )
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
             if (OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return (count);
  }
//+------------------------------------------------------------------+
int CountBuy() // проверкна открытие ордеров на покупку
  {
   int count= 0 ;
   for ( int trade= OrdersTotal ()- 1 ; trade>= 0 ; trade--)
     {
       if ( OrderSelect (trade,SELECT_BY_POS,MODE_TRADES)== true )
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
             if (OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return (count);
  }
//+------------------------------------------------------------------+
 
Roman Sharanov :
로봇을 다운로드했는데 이 오류는 무엇과 연결되나요?
모든 것이 봇을 설치한 모든 사람에게 작동합니다. 저는 이와 같은 봇을 가지고 있습니다. 터미널을 다시 설치하고 관리자 권한으로 열었지만 아무 것도 도움이되지 않았습니다.

운영 체제를 다시 설치하거나 변경하는 것만 남아 있습니다.




당신은 옳게 생각하지 않았다. 나는 고문을 의미했다.

 
Alexey Viktorov :

운영 체제를 다시 설치하거나 변경하는 것만 남아 있습니다.




당신은 옳게 생각하지 않았다. 나는 고문을 의미했다.

이유는 무엇입니까?
 
Roman Sharanov :
이유는 무엇입니까?

그런 경우에는 이해하려 하지도 고치려 하지도 않습니다. 늘 후회 없이 버리고 잊어버립니다.