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

 
pronych :

내부에서 표시기를 업데이트하는 방법, 즉 이벤트 OnCalculate?

따라서 수정되지 않은 경우(발생할 수 있는 문제 아래).

또는 타이머( 이와 같은 것)로.

 
Silent :

따라서 수정되지 않은 경우(발생할 수 있는 문제 아래).

또는 타이머( 이와 같은 것)로.

분명한. )) 정상적인 기능을 요청해 보셨습니까?

 
pronych :

분명한. )) 정상적인 기능을 요청해 보셨습니까?

저는 일반적으로 그렇습니다(MetaDraiver가 SD로 작성한 것 같습니다). 이 질문은 포럼에서 여러 번 제기되었습니다.

개발자의 답변이 있었는지 모르겠습니다.

추신은 유용 할 수 있습니다

MQL5의 다중 통화 변동성 지표 개발

가격 다이버전스를 분석하기 위한 다중 통화 지표 개발

여기에 게시했어야 하는 것 같은데 찾지 못했습니다.

처음에 오류가 뜨면

40번째 라인 CCanvas 캔버스; 실수

해결되지 않은 정적 변수 'CCanvas::m_default_colors'

추가하다

단위 CCanvas::m_default_colors[9]={0};

어디에서 무엇을 수정했는지 확인하지 않고 오랫동안 논의 되었습니다.

Разработка мультивалютного индикатора волатильности на MQL5
Разработка мультивалютного индикатора волатильности на MQL5
  • tol64.blogspot.com
В этой статье рассмотрим разработку мультивалютного индикатора волатильности. Начинающий разработчик на MQL5 может столкнуться с некоторыми сложностями при разработке мультивалютных индикаторов, но после прочтения этой статьи всё станет намного проще. Основные вопросы при разработке мультивалютного индикатора относятся к синхронизации данных...
 

자, Metadriver를 호출해 보겠습니다. 아마도 그는 개발자가 말한 것을 밝힐 것입니다. 볼로디아!...

Володя (песня измученного ангольского народа)
Володя (песня измученного ангольского народа)
  • my.mail.ru
Песня посвящена ангольскому революционеру одному из командиров MPLA, убитому в 1975 году (в Луанде в честь него названа одна из улиц). Валодя – это было его боевое прозвище. После 75го года песня про Валодю была очень популярна в Анголе. Где только я ни слышал это имя, Незабываемое для сынов Анголы. Володя, Володя, Володя, славный защитник ангольского народа! Володя, Володя, Володя, противник империалиста, Который собирается установить режим...
 
pronych :

자, Metadriver를 호출해 보겠습니다. 아마도 그는 개발자가 말한 것을 밝힐 것입니다. 볼로디아!...

질문을 잘 이해하지 못했습니다. 전임 티크 발신자에게 묻기 - 묻지 않았습니다. 사일런트 는 반대로 가고 있었던 것 같은데…, 한마디로 서로 의지했다.

간접적인 경우가 있었습니다. 이미 TERMINAL_MAX_BAR 외부의 데이터 요청으로 인해 차트의 모든 지표가 업데이트되었다는 것이 분명해진 후였습니다.

그런 다음 푸시 버튼 차트 리 로더 를 다시 수정하고 새 버전을 서비스 데스크로 보냈습니다. 동시에, 댓글에서 그는 칩이 계속 작동할 것이라는 사실을 믿을 것인지 물었습니다... 글쎄요, 그들은 침묵을 지켰습니다... 하지만 그것은 나에게 적합했습니다... 그래서 나는 이것으로 기능을 만들었습니다 벌레.

;)

--

음, 엄밀히 말하면 버그가 아닙니다. 터미널이 충돌하지 않고 속도가 많이 느려지지도 않고 차트의 데이터만 업데이트됩니다. 무슨 일이 일어나고 있는지 이해합니다. 유형: 기존 데이터를 넘어서는 요청 -> 데이터를 로드하려는 터미널의 시도, 차트 업데이트가 뒤따릅니다. 간단하고 효율적입니다. 피해자가 없는데 왜 바꾸나요?

// "내부에서 지표 재계산"에 관해서는 문제를 전혀 이해하지 못했습니다. 질문이 어떻게 이해되지 않습니다. 내부에서 표시기는 자체 마스터이며 원하는 것을 다시 계산합니다. 그리고 여기에 외부 신호가있는 경우 다른 문제가 있습니다. 그럼 우리는 롤..

 

젠장, 아닐 수도 있습니다.))

prev_calculated가 표시기의 렌더링에 구체적으로 어떤 영향을 미치는지는 완전히 명확하지 않습니다.

제 경우에는 업데이트 시도가 OnCalculate()와 타이머 모두에서 발생합니다. 다목적 도구.

행을 가져오려는 시도가 실패한 경우 다음 틱 또는 타이머까지 함수가 중단되고 그리기가 발생하지 않지만 차트의 어딘가에서 초기화되지 않은(겉보기에) 값이 나타납니다.

Init() 에는 ArrayInitialize (Buffer ,...)가 있지만.

어딘가에 버그가 있을 수 있습니다. 이것은 아주 드물게 발생하며 잡기가 어렵습니다.

요컨대, OnCalculate()에서 강제 대기열의 일반 기능을 사용하면 희귀 눈금이 있는 차트에서 다중 악기 칠면조에서 탬버린으로 춤추는 것을 최소화할 수 있을 것 같습니다.

그건 그렇고, 그것은 설명서에 ;)

Все необходимые расчеты пользовательских индикаторов необходимо размещать в предопределенной функции OnCalculate ().

추신. "칩"에 대해 이해했습니다.

PSPS/One은 위의 경우에 Expert Advisor가 지표를 사용하지 않고 값 계산을 사용하는 것이 더 신뢰할 수 있다는 느낌을 받습니다. 그리고 시각화를 위한 별도의 지표.

그러나 그런 다음 같은 것을 두 번 계산해야 합니다.

 
MetaDriver :

질문을 잘 이해하지 못했습니다. 일반 티크 발신자에게 묻기 위해 - 묻지 않았습니다. 사일런트 는 반대로 가고 있었던 것 같은데…, 한마디로 서로 의지했다.

...

나는 이것에 대해 이야기하고있다

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

메타드라이버 , 2013.08.03 17:55

"

아마도. 기간에 변경 사항이 전혀 없는 경우에만 더 좋을 것입니다. 좋은 지표는 어리석은 틱 생성이 필요합니다.

내 목적을 위해 이것이 항상 적합한 것은 아니지만 일반적인 경우 많은 "주말 문제"가 제거됩니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

메타드라이버 , 2013.08.03 18:02

동의한다.

소프트웨어의 "명령"은 선택한 문자에 대해 모든 prev_calculated 를 강제로 0으로 만드는 것도 유용할 것입니다. 후속 틱 생성과 결합하는 것이 좋습니다.



 

시각적 테스트 중 Expert Advisor에서 지표가 다시 초기화되는 순간 지표는 계속 계산되어 이전 설정으로 테스터의 차트에 표시됩니다(실제로는 테스트 중 매번 다른 "평행선"이 추가됩니다. 재초기화). 새 핸들을 얻기 전에 매번 IndicatorRelease를 시도했지만 도움이 되지 않습니다.

새 핸들을 받으려면 코드를 입력하세요 -

 void f_indicator_reinit()
 { 
    
   IndicatorRelease (firstHandle);
   IndicatorRelease (secondHandle);
   IndicatorRelease (thirdHandle);
   IndicatorRelease (fourthHandle);  

   bughelper=bughelper+ 1 ;
   
   firstHandle= iCustom ( NULL , 0 , "indicatorname.ex5" , 12 +bughelper,ind_s,HotPink,HotPink, 10 , MODE_SMA , PRICE_CLOSE , 1 );
   secondHandle= iCustom ( NULL , 0 , "indicatorname.ex5" , 12 +bughelper,ind_s,White,White, 10 , MODE_SMA , PRICE_CLOSE , 2 );   
   thirdHandle= iCustom ( NULL , 0 , "indicatorname.ex5" , 12 +bughelper,ind_s,Red,Red, 10 , MODE_SMA , PRICE_CLOSE , 3 );   
   fourthHandle= iCustom ( NULL , 0 , "indicatorname.ex5" , 12 +bughelper,ind_s,Gold,Gold, 10 , MODE_SMA , PRICE_CLOSE , 4 ); 
 }  

입력 매개변수를 변경하지 않으면 표시기 가 전혀 재계산되지 않았기 때문에 bughelper 변수를 도입했습니다.

 
Silent :

나는 이것에 대해 이야기하고있다

글쎄, 나는 그것에 대해 대답했다. 내 재계산 문제는 TERMINAL_MAX_BAR 외부의 데이터를 요청하여 해결되었습니다.

또한 차트 전체가 업데이트되고 있으므로 이러한 요청이 지표 내부에서 수행되는지 외부 프로그램에서 수행되는지 여부는 중요하지 않습니다. 중요한 것은 프로그램(요청)이 이 특정 기호 및 시간 프레임에 대한 데이터를 요청한다는 것입니다.

사실, "원자에서" 차트를 업데이트해야 하는 경우를 본 적이 없습니다. 내 버튼은 나를 완전히 만족시킵니다. // 위 링크 참조.

틱 생성 (차트 업데이트 없이)을 사용하면 문제가 해결되지 않았지만 실제로 해결하지는 못했습니다. 대부분의 경우 여러 가지 방법으로(주로 타이머 사용) 피할 수 있습니다.

 
IndicatorRelease (firstHandle);
Функция возвращает ошибку 4014 - 

ERR_FUNCTION_NOT_ALLOWED

4014

시스템 기능을 호출할 수 없습니다.

IndicatorRelease ()가 실패하는 이유를 알려주세요 ???

사유: