오류, 버그, 질문 - 페이지 32

 
이제 나도 결함이 있습니다 ... 다시 컴파일 할 때까지 마지막 막대가 그려집니다.
 
Interesting :

유일한 올바른 방법은 매우 간단합니다.

100% 작동 표시기가 작성되고 "Symbol" 매개변수 없이 고전적으로 수행됩니다. 현재 기호 및 기간으로 계산됩니다.

그 후, 그러한 BASIC 계산기는 Expert Advisor(기계 작업이 제공되는 경우) 또는 계산기(NON-CALCULATED INSTRUMENT의 차트에 정보를 표시해야 하는 경우)에서 호출됩니다.

추신

그렇지 않고 모든 것을 현명하게 하다 보면 계산기나 별도의 함수에서 추가 계산을 하고 그 결과를 현재 차트의 데이터와 연결해야 하는...

고려할 가치가 있는 제안

물론 일반적인 논리의 관점에서 이것은 오른손으로 왼쪽 귀를 긁는 것과 같습니다 (하지만 이것은 더 이상 당신을위한 것이 아니라 개발자를위한 것입니다).

그렇다면 왜 네이티브가 아닌 악기의 데이터를 호출할 수 있습니까?

여전히 사용자 지정 표시기 를 만들고 올바른 도구에서 호출해야 하는 경우 일반적으로 결론은 모자를 사는 것입니다.

다시, 글쎄, 나는 JPY 데이터로 EUR에 대한 기성 표시기를 부를 것이지만 (예를 들어, 엔화에 대한 기록이 충분하지 않음)

그러나 이 길이에 대한 데이터가 없으며 그가 나에게 무엇을 말할 것입니까 ??? 같은 노래.

Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 

다음은 작동 중인 버전입니다.

 #property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot LRma
#property indicator_label1   "LRma"
#property indicator_type1   DRAW_LINE
#property indicator_color1  Red
#property indicator_style1  STYLE_SOLID
#property indicator_width1   1
input string              symbol      = "EURJPY" ;
input int                 MA_Period   = 25 ;           // период MA
input int                 MA_shift    = 0 ;           // сдвиг индикатора
input ENUM_APPLIED_PRICE price       = PRICE_OPEN ;   // тип цены 
//--- indicator buffers
double   LRma[],L[],S[],iPoint,iiMA;

int Lwma,Sma; // Хендлы машек
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,LRma, INDICATOR_DATA );
   Lwma= iMA (symbol, 0 ,MA_Period+ 1 ,MA_shift, MODE_LWMA ,price);
   Sma= iMA (symbol, 0 ,MA_Period+ 1 ,MA_shift, MODE_SMA ,price);
   iPoint= 1.0 / SymbolInfoDouble (symbol, SYMBOL_POINT );
   iiMA= 1.0 /MA_Period;
   IndicatorSetString ( INDICATOR_SHORTNAME , "LRma_symbol_" +symbol);
//---
   int count=( int ) SeriesInfoInteger (symbol, 0 , SERIES_BARS_COUNT );
   while ( BarsCalculated (Lwma)<count){}
   while ( BarsCalculated (Sma)<count){}
   ArraySetAsSeries (L,true);
   ArraySetAsSeries (S,true);
   ArraySetAsSeries (LRma,true);
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   int count=rates_total-prev_calculated;
   if (count> 1 )count=( int ) SeriesInfoInteger (symbol, 0 , SERIES_BARS_COUNT );
   if (count== 0 )count= 1 ;
   while ( BarsCalculated (Lwma)<count){}
   while ( BarsCalculated (Sma)<count){}
   if ( CopyBuffer (Lwma, 0 , 0 ,count,L)!=- 1 )
     {
       if ( CopyBuffer (Sma, 0 , 0 ,count,S)!=- 1 )
        {
         for ( int i= 0 ;i< MathMin ( ArraySize (LRma), ArraySize (L));i++)
            LRma[i]=(L[i]-S[i])* 6 *iPoint*iiMA;
        }
     }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
 

나는 더 많은 두통을 추가할 수 있습니다. 지표가 하나의 차트에 멈추고  다음을 고려해야 합니다.

  1. 막대의 수가 다를 수 있습니다. 처럼 이미 고려되었습니다.
  2. 한 악기의 기록에는 구멍이 있고 한 악기의 기록에는 25개의 막대가 있을 수 있다는 점을 고려하면 월요일이 될 수 있고 다른 악기에서는 금요일이 될 수 있습니다.
  3. 처음 두 가지 문제가 해결되더라도 시간 동기화는 유지되고 한 악기에는 이미 새 막대가 진행 중이고 다른 악기에는 아직 시작되지 않았습니다...
  4. 표시기 작동  새로운 진드기가 도착한 경우에만, 즉 차트에 걸려있는 경우  틱이 거의 없고 다른 차트의 0바를 전달하는 것은 문제가 있습니다...
  5. 0 바, 무화과 만 계산하는 것을 중단하면 완료 만하면 몇 가지 함정이 더 나타납니다 ...
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
  • www.mql5.com
Доступ к таймсериям и индикаторам / Bars - Документация по MQL5
 
Prival :

나는 또 다른 두통을 추가할 수 있습니다. 지표가 하나의 차트에 멈추면   다음을 고려해야 합니다.

  1. 막대의 수가 다를 수 있습니다. 처럼   이미 고려되었습니다.
  2. 한 악기의 기록에는 구멍이 있고 한 악기의 기록에는 25개의 막대가 있을 수 있다는 점을 고려하면 월요일이 될 수 있고 다른 악기에서는 금요일이 될 수 있습니다.
  3. 처음 두 가지 문제가 해결되더라도 시간 동기화는 유지되고 한 악기에는 이미 새 막대가 진행 중이고 다른 악기에는 아직 시작되지 않았습니다...
  4. 표시기 작동   새로운 진드기가 도착한 경우에만, 즉 차트에 걸려있는 경우   틱이 거의 없고 다른 차트의 0바를 전달하는 것은 문제가 있습니다...
  5. 0 바, 무화과 만 계산하는 것을 중단하면 완료 만하면 몇 가지 함정이 더 나타납니다 ...

좋은 말씀 감사합니다:o)
 

벌레. 설명. ATS는 항상 시장에 있습니다(이중 로트 0.2로 반전)

테스트 모드 모든 틱. 모든 것이 정상입니다.

시가로 테스트 모드. 같은 조각.

어떤 이유로 2개의 트랜잭션으로 분할됩니다. 그냥 그렇게 보일 수도 있지만 정확하지 않습니다. 그렇게해서는 안됩니다.

 
Alexandr2385 :

안녕하세요! MT5 터미널 운영에 심각한 문제가 있습니다. 사실은 제가 단말기를 런칭하면 동작중 가격선(입찰가)만 움직이고 양초(막대) 자체가 그려지지 않거나 변경되지 않는다는 사실입니다. 따라서 가격은 차트 자체를 변경하지 않고 이동합니다. 제 질문은 이 문제를 어떻게 해결할 수 있습니까? 결국, MT4에서는 모든 것이 잘 작동합니다!!!?! 동시에 터미널을 다시 설치하려고했지만 도움이되지 않았습니다! 그리고 여러 브로커와의 이러한 문제 ...이 상황에서해야 할 일을 알려주십시오.
질문에 답할 수 있는 개발자가 있습니까? 아니면 다른 스레드에 올려야 하나요?
파일:
1.png  31 kb
 
Alexandr2385 :
질문에 답할 수 있는 개발자가 있습니까? 아니면 다른 스레드에 올려야 하나요?
+1 나는 같은 그림을 내 자신에게서 관찰했지만 이제 모든 것이 올바르게 작동하는 것 같습니다. 아마도 제거되었을 것입니다.
 
SHOOTER777 :

+1 나는 같은 그림을 내 자신에게서 관찰했지만 이제 모든 것이 올바르게 작동하는 것 같습니다. 아마도 제거되었을 것입니다.

예, 얼마나 이상하지만 지금은 사라졌습니다. 얼마나 오래되었는지 모르겠습니다 ...

 
Prival :

나는 또 다른 두통을 추가할 수 있습니다. 지표가 하나의 차트에 멈추고   다음을 고려해야 합니다.

  1. 막대의 수가 다를 수 있습니다. 처럼   이미 고려되었습니다.
  2. 한 악기의 기록에는 구멍이 있고 한 악기의 기록에는 25개의 막대가 있을 수 있다는 점을 고려하면 월요일이 될 수 있고 다른 악기에서는 금요일이 될 수 있습니다.
  3. 처음 두 가지 문제가 해결되더라도 시간 동기화는 유지되고 한 악기에는 이미 새 막대가 진행 중이고 다른 악기에는 아직 시작되지 않았습니다...
  4. 표시기 작동   새로운 진드기가 도착한 경우에만, 즉 차트에 걸려있는 경우   틱이 거의 없고 다른 차트의 0바를 전달하는 것은 문제가 있습니다...
  5. 0 바, 무화과 만 계산하는 것을 중단하면 완료 만하면 몇 가지 함정이 더 나타납니다 ...

역사의 구멍과 문제를 희생하면서 나는 동의합니다.

정상 작동 및 기간 동기화 중에 새 막대(예: 논리적)가 동시에 시작되어야 합니다...