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

 
Artyom Trishkin :

글쎄요, 실수가 아닙니다. 전역 i 가 있는 루프(파란색)와 로컬 i 가 있는 또 다른 루프(빨간색)

컴파일러는 불평할 것이다
 
pako :
컴파일러는 불평할 것이다
네, 그럴 것입니다. 그러나 논의중인 문제에 더 적합하지 않습니다.)
 
Artyom Trishkin :

글쎄요, 실수가 아닙니다. 전역 i 가 있는 루프(파란색)와 로컬 i 가 있는 또 다른 루프(빨간색)

나도 이해했는데... i (파란색)는 아파트이고 i (빨간색)은 화장실입니다. :)))))

 
좋은 하루입니다 부엉이에서 ZigZag를 실행하는 방법을 알려주세요. 고문은 일반적으로 작동하지만 왼쪽 신호가 많이있어 ZZ를 붙이고 작동을 멈췄습니다. 테스트에서 지그재그 파일을 열 수 없으며 디버깅이 전혀 없으며 데모에서 단일 주문을 구매하지 않았습니다.
xtern string    ZigZag                       = "Данные ZigZag" ;
extern int       InpDepth                      = 20 ;
extern int       InpDeviation                  = 5 ;
extern int       InpBackstep                   = 3 ;

double MacdCurrent,SignalCurrent,SignalMAPrevious,SignalMAThis,
       PriceCurrentOpen,PriceCurrentClose,SignalParabolic,ZZThis,ZZPrevious;
int     ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
{
 if ( Digits == 3 || Digits == 5 )
 {
  slippage*= 10 ;
 }   
 return ( INIT_SUCCEEDED );
} 
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
{
 datetime EaStartTime = StringToTime (StartTime);   // время начала работы советника
 datetime EaEndTime = StringToTime (EndTime);       // время окончания работы советника
 datetime CurrTime = TimeCurrent ();               // это если нужно взять время терминала
 if (CurrTime < EaStartTime || CurrTime >= EaEndTime)
   return ;                                         // если еще не время торговать - выход
 {
  MacdCurrent= iMACD ( NULL , 0 ,InpFastEMA,InpSlowEMA,InpSignalSMA,Macd_Applied_Price,MODE_MAIN, 0 );
  SignalCurrent= iMACD ( NULL , 0 ,InpFastEMA,InpSlowEMA,InpSignalSMA,Macd_Applied_Price,MODE_SIGNAL, 0 );
  SignalMAPrevious= iMA ( NULL , 0 ,InpMAPeriod,InpMAShift,InpMAMethod,MA_Applied_Price, 1 );
  SignalMAThis= iMA ( NULL , 0 ,InpMAPeriod,InpMAShift,InpMAMethod,MA_Applied_Price, 0 );
  SignalParabolic= iSAR ( NULL , 0 ,InpSARStep,InpSARMaximum, 0 );
  ZZThis= iCustom ( NULL , 0 ,ZigZag,InpDepth,InpDeviation,InpBackstep, 0 , 0 );
  ZZPrevious= iCustom ( NULL , 0 ,ZigZag,InpDepth,InpDeviation,InpBackstep, 0 , 4 );
   if (CountTrades()== 0 ) CheckForOpen();
 }
}  
void CheckForOpen()
 
Alexey Viktorov :

나도 이해했는데... i (파란색)는 아파트이고 i (빨간색)은 화장실입니다. :)))))

대중 과학 문헌을 작성해야합니다. 모든 것을 간단하게 설명하는 명확한 재능))

발표와 함께

 #property strict

로컬 i가 전역 i보다 우선한다는 경고를 발행할 뿐입니다.

'i' 선언은 20행에서 전역 선언을 숨깁니다. test.mq4 25 열셋

 
Alexey Volchanskiy :

대중 과학 문헌을 작성해야합니다. 모든 것을 간단하게 설명하는 명확한 재능))

발표와 함께

로컬 i가 전역 i보다 우선한다는 경고를 발행할 뿐입니다.

'i' 선언은 20행에서 전역 선언을 숨깁니다. test.mq4 25 열셋

Artyom은 이렇게 설명했습니다. 그런 재주가 없어... 축치는 작가가 아니고, 축치는 독자다...
 
Alexey Viktorov :
Artyom은 이렇게 설명했습니다. 그런 재주가 없어... 축치는 작가가 아니고, 축치는 독자다...
글쎄요... 우리는 시베리아 퀼팅 자켓입니다 ;)
 
Nickolay72 :
좋은 하루입니다 부엉이에서 ZigZag를 실행하는 방법을 알려주세요. 고문은 일반적으로 작동하지만 왼쪽 신호가 많이있어 ZZ를 붙이고 작동을 멈췄습니다. 테스트에서 지그재그 파일을 열 수 없으며 디버깅이 전혀 없으며 데모에서 단일 주문을 구매하지 않았습니다.

커스텀 인디케이터 에는 ZigZag 파일이 있는데, 어드바이저에서 액세스할 때와 마찬가지로 정확히 거기에서 호출됩니까?

  ZZThis= iCustom ( NULL , 0 , ZigZag ,InpDepth,InpDeviation,InpBackstep, 0 , 0 );
  ZZPrevious= iCustom ( NULL , 0 , ZigZag ,InpDepth,InpDeviation,InpBackstep, 0 , 4 );
 
Vladimir Zubov :

커스텀 인디케이터 에는 ZigZag 파일이 있는데, 어드바이저에서 액세스할 때와 마찬가지로 정확히 거기에서 호출됩니까?

파일 이름은 확장자 없이 따옴표로 묶어야 합니다. 전혀 컴파일되지 않은 것이 이상합니다. 원래 ZigZag 변수는 무엇이었습니까?

ZZThis= iCustom ( NULL , 0 , "ZigZag" ,InpDepth,InpDeviation,InpBackstep, 0 , 0 );
 

5개에서 단일 음의 하락을 균등화하거나 보상하는 방법

기능이 있지만 작동하지 않습니다

 //+------------------------------------------------------------------+
//| Считаем лот в зависимости от полученного профита                 |
//+------------------------------------------------------------------+
double Volume( void )
  {
   double lot=Lots;
//--- Получим доступ к истории
   HistorySelect ( 0 , TimeCurrent ());
//--- Сделки в истории
   int orders= HistoryDealsTotal ();
//--- Тикет последней сделки  
   ulong ticket= HistoryDealGetTicket (orders- 1 );
   if (ticket== 0 )
     {
       Print ( "Нет сделок в истории! " );
      lot=Lots;
     }
//--- Профит сделки
   double profit= HistoryDealGetDouble (ticket, DEAL_PROFIT );
//--- Лот сделки
   double lastlot= HistoryDealGetDouble (ticket, DEAL_VOLUME );
//--- Профит отрицательный
   if (profit< 0.0 )
     {
       //--- Увеличиваем следующий лот
      lot=lastlot*KLot;
       Print ( " Cделка закрыта по стопу! " );
     }
//--- Приводим лот к минимальному
   double minvol= SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MIN );
   if (lot<minvol)
      lot=minvol;
//--- Если лот больше максимального то начальный лот
   if (lot>MaxLot)
      lot=Lots;
//--- Возвращаем торговый объем
   return (lot);
  }
//+------------------------------------------------------------------+
//| Смотрим тип последней закрытой сделки                            |
//+------------------------------------------------------------------+
int LastDealType( void )
  {
   int type= 0 ;
//--- Получим доступ к истории
   HistorySelect ( 0 , TimeCurrent ());
//--- Сделки в истории
   int orders= HistoryDealsTotal ();
//--- Тикет последней сделки  
   ulong ticket= HistoryDealGetTicket (orders- 1 );
//--- Нет сделок в истории
   if (ticket== 0 )
     {
       Print ( "Нет сделок в истории! " );
      type= 0 ;
     }
   if (ticket> 0 )
     {
       //--- Последняя сделка BUY 
       if ( HistoryDealGetInteger (ticket, DEAL_TYPE )== DEAL_TYPE_BUY )
        {
         type= 2 ;
        }
       //--- Последняя сделка SELL
       if ( HistoryDealGetInteger (ticket, DEAL_TYPE )== DEAL_TYPE_SELL )
        {
         type= 1 ;
        }
     }
//---
   return (type);
  }
사유: