초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1066

 
yiduwi :

덕분에.

이고르 마카누 :... 조건이 충족되는 곳에만 화살을 넣어야 합니다 ...

그러나 두 번째 막대에 베팅합니다.


인디케이터 버퍼의 인덱싱 방향을 확인하십시오.

 
Artyom Trishkin :

인디케이터 버퍼의 인덱싱 방향을 확인하십시오.

확인해야 할 사항, 화살표를 표시해야 하는 막대의 코드는 다음과 같습니다.

 {
//---
   int limit=rates_total-prev_calculated;
   if (limit> 1 || prev_calculated== 0 )
     {
      limit=rates_total- 2 ;
       ArrayInitialize (BufferUP, EMPTY_VALUE );
       ArrayInitialize (BufferDN, EMPTY_VALUE );
     }
   for ( int i=limit; i>= 0 ; i--)
     {
       if ( fabs (high[i+ 1 ]-high[i])<= _Point *( double )Pips) BufferDN[i]=high[i]; else BufferDN[i]= EMPTY_VALUE ;
     }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
 
yiduwi :

확인해야 할 사항, 화살표를 표시해야 하는 막대의 코드는 다음과 같습니다.

BufferUP 및 BufferDN에는 어떤 종류의 인덱싱이 있습니까?

Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Artyom Trishkin :

BufferUP 및 BufferDN에는 어떤 종류의 인덱싱이 있습니까?

거꾸로 했다

 for ( int i= 0 ;i<limit;i++) 

여전히 두 번째 막대에 베팅

 
yiduwi :

거꾸로 했다

여전히 두 번째 막대에 베팅

모든 배열은 같은 방향이어야 합니다.

 
Artyom Trishkin :

모든 배열은 같은 방향이어야 합니다.

그렇다면 첫 번째 옵션이 맞습니다. 무엇이 문제입니까?

 
yiduwi :

그렇다면 첫 번째 옵션이 맞습니다. 무엇이 문제입니까?

문제는 지표의 전체 목록이 보이지 않는다는 것입니다.

 
yiduwi :

이것이 그가 첫 번째 막대에 베팅하는 방법이지만 실시간으로 화살표가 나타나지 않고 TF를 전환한 후에만 나타납니다. 뭐가 문제 야?

OnInit() BufferUP 및 BufferDN용 ArraySetAsSeries() , OnCalculate() - 높음 및 낮음용 ArraySetAsSeries()

if(한계>1)

{

}

필요하지 않음 prev_calculated==0

 
Artyom Trishkin :

OnInit() BufferUP 및 BufferDN용 ArraySetAsSeries(), OnCalculate() - 높음 및 낮음용 ArraySetAsSeries()

덕분에.

 

코드에서 옳지 않은 것은? 나는 시험의 끝을 잡으려고 노력하고 있어

 void MyHistory()
  {
//--- select history for access
//HistorySelect(0,TimeCurrent());
   HistorySelect ( 0 , TimeTradeServer ());
//---
   int     orders= HistoryDealsTotal ();   // total history deals
   int     losses= 0 ;                     // number of losses orders without a break

   for ( int i=orders- 1 ;i>= 0 ;i--)
     {
       ulong ticket= HistoryDealGetTicket (i);
       if (ticket== 0 )
        {
         Print ( "HistoryDealGetTicket failed, no trade history" );
         break ;
        }
       //--- check symbol
       if ( HistoryDealGetString (ticket, DEAL_SYMBOL )== _Symbol )
         continue ;
       //--- check profit
       string    deal_comment= HistoryDealGetString (ticket, DEAL_COMMENT );

       if (deal_comment== "end of test" )
        {
         Print ( "!!!!!!!!!!!!!!!  END TEST !!!!!!!!!!!!!!!!" );
         break ;
        }
/*
         if(deal_comment!="end of test")
            {
            return;
            }
            */
     }
//---

   return ;

  }
사유: