매우 감사합니다. 나는 당신의 링크를 통해 트릭이 무엇인지 이해했습니다. 주목! 여러분, iMAONArray()에서 BUFFERS를 사용한 상황입니다. 그리고 버퍼는 init()에서 초기화되었습니다. 시각적 테스트를 실행했을 때 Bar의 초기 크기는 작았습니다. 그리고 모든 배열은 작은 크기로 초기화됩니다!!! 초기화 크기를 최소 6000개 요소로 늘렸습니다. 그리고 그게 다야! EA의 시각적 테스트는 지표 계산의 정확성을 확인했습니다. 하, 사업. 이제 막대의 지연을 확인해야 합니다. 지표 값이 달라지는지 궁금합니다. 그러나 우리는 월요일에 그것을 볼 것입니다. 누구든지 RAM을 절약하고 어레이를 너무 크게 만들지 않는 방법을 제안 할 수 있지만 계산이 반년 미만 지속되도록 제안 할 수 있다면 자유롭게 아이디어를 표현하십시오. 아무것도 하지 않는 사람은 실수하지 않습니다.
FAQ에 제 사례를 추가해주세요.
드디어 벌었다!
새로운 기능 옵션:
//-----------------------------------------------------------------------------int init (){SetIndexBuffer(0, tsi );// Назначение массива буферуSetIndexBuffer(1, ergodic );// Назначение массива буферуSetIndexBuffer(2, cross );// Назначение массива буферуSetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);// Стиль линии DRAW_HISTOGRAM STYLE_SOLIDSetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);// Стиль линии SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,0);// Стиль линииSetIndexArrow(2,161);SetIndexLabel(0,"TSI");SetIndexLabel(1,"Ergodic");SetIndexLabel(2,"Cross");IndicatorShortName("TSI("+ LengthMtm +","+ LengthSmooth +","+ LengthErgodic +")");int BigBars =MathMax(Bars,6000);ArrayResize( mtm , BigBars );ArrayResize( base , BigBars );ArrayResize( mtmMA , BigBars );ArrayResize( mtmS , BigBars );ArraySetAsSeries( mtm ,true);ArraySetAsSeries( base ,true);ArraySetAsSeries( mtmMA ,true);ArraySetAsSeries( mtmS ,true);return(0);}
지원해 주셔서 대단히 감사합니다. 원하는 대로 표시기를 사용하십시오. 사실, 그는 약간 느립니다. :)))
//--------------------------------------------------------------------// TSI.mq4 // Предназначен для использования в качестве трендового индикатора//--------------------------------------------------------------------#property indicator_separate_window // indicator_chart_window, indicator_separate_window#property indicator_buffers 3 // Количество буферов#property indicator_color1 Red // Цвет первой линии Red Blue Lime #property indicator_color2 Blue // Цвет второй линии#property indicator_color3 Yellow#property indicator_level1 - 20#property indicator_level2 20//#property indicator_minimum -100//#property indicator_maximum 100externint LengthMtm =21;externint LengthSmooth =5;externint LengthErgodic =5;externint HistoryLimit =2000;double tsi [], ergodic [], cross [];// Объявление массивов (под буферы индикатора)double mtm [], base [], mtmMA [], mtmS [];//-----------------------------------------------------------------------------int MathSgn (double Value =0.0){if( Value <0)return(-1);elsereturn(1);}//-----------------------------------------------------------------------------int init (){IndicatorBuffers(7);SetIndexBuffer(0, tsi );// Назначение массива буферуSetIndexBuffer(1, ergodic );// Назначение массива буферуSetIndexBuffer(2, cross );// Назначение массива буферуSetIndexBuffer(3, mtm );SetIndexBuffer(4, base );SetIndexBuffer(5, mtmMA );SetIndexBuffer(6, mtmS );SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);// Стиль линии DRAW_HISTOGRAM STYLE_SOLIDSetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);// Стиль линии SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,0);// Стиль линииSetIndexArrow(2,161);SetIndexLabel(0,"TSI");SetIndexLabel(1,"Ergodic");SetIndexLabel(2,"Cross");IndicatorShortName("TSI("+ LengthMtm +","+ LengthSmooth +","+ LengthErgodic +")");return(0);}//-----------------------------------------------------------------------------int start (){if( HistoryLimit ==0) HistoryLimit =Bars;int Counted_bars =IndicatorCounted();int i , limit =MathMin(Bars- Counted_bars -1, HistoryLimit );double tmp ;for( i = limit ; i >=0; i --){
mtm [ i ]=Close[ i ]-Close[ i +1];
base [ i ]=High[ i ]-Low[ i ];}for( i = limit ; i >=0; i --){
mtmMA [ i ]=iMAOnArray( mtm ,0, LengthMtm ,0,MODE_EMA, i )*100;
tmp =iMAOnArray( base ,0, LengthMtm ,0,MODE_EMA, i );
mtmS [ i ]=0;if( tmp >0) mtmMA [ i ]/= tmp ;
mtmS [ i ]=iMAOnArray( mtmMA ,0, LengthSmooth ,0,MODE_EMA, i );
tsi [ i ]= mtmS [ i ];}for( i = limit ; i >=0; i --){
ergodic [ i ]=iMAOnArray( mtmS ,0, LengthErgodic ,0,MODE_EMA, i );
cross [ i ]=EMPTY_VALUE;if( MathSgn ( tsi [ i +1]- ergodic [ i +1])!= MathSgn ( tsi [ i ]- ergodic [ i ]))
cross [ i ]= ergodic [ i ];}return(0);}
할 수 없습니다. 하지만 확인하는 것이 좋습니다)
불일치는 시프트 없이 배열을 사용하기 때문입니다.
매우 감사합니다. 나는 당신의 링크를 통해 트릭이 무엇인지 이해했습니다. 주목! 여러분, iMAONArray()에서 BUFFERS를 사용한 상황입니다. 그리고 버퍼는 init()에서 초기화되었습니다. 시각적 테스트를 실행했을 때 Bar의 초기 크기는 작았습니다. 그리고 모든 배열은 작은 크기로 초기화됩니다!!! 초기화 크기를 최소 6000개 요소로 늘렸습니다. 그리고 그게 다야! EA의 시각적 테스트는 지표 계산의 정확성을 확인했습니다. 하, 사업. 이제 막대의 지연을 확인해야 합니다. 지표 값이 달라지는지 궁금합니다. 그러나 우리는 월요일에 그것을 볼 것입니다. 누구든지 RAM을 절약하고 어레이를 너무 크게 만들지 않는 방법을 제안 할 수 있지만 계산이 반년 미만 지속되도록 제안 할 수 있다면 자유롭게 아이디어를 표현하십시오. 아무것도 하지 않는 사람은 실수하지 않습니다.
FAQ에 제 사례를 추가해주세요.
드디어 벌었다!
새로운 기능 옵션:
지원해 주셔서 대단히 감사합니다. 원하는 대로 표시기를 사용하십시오. 사실, 그는 약간 느립니다. :)))그것은 작동하는 것 같다
그것은 작동하는 것 같다
귀하의 버전이 내 새 버전보다 빠릅니다. 어드바이저에서는 일반적으로 그렇게 날아갑니다! :))) 그러나 시각적 테스트 후 차트에 다시 던져지면 선이 그려지지 않는지 이해할 수 없습니다. 무엇이 문제인지 짐작할 수 있습니까?귀하의 버전이 내 새 버전보다 빠릅니다. 어드바이저에서는 일반적으로 그렇게 날아갑니다! :))) 그러나 시각적 테스트 후 차트에 다시 던져지면 선이 그려지지 않는지 이해할 수 없습니다. 무엇이 문제인지 짐작할 수 있습니까?
나는 이미 그것을 고쳤다. 위의 글이 수정되었습니다.
나는 이미 그것을 고쳤다. 위의 글이 수정되었습니다.
다시 업로드하십시오. 무언가가 다시 렌더링되지 않습니다.다시 업로드하십시오. 무언가가 다시 렌더링되지 않습니다.
트릭이 있습니다. 차트에서 꺼내기만 하면 그려지지 않고 다시 컴파일하면 숫자를 배우는 데 도움이 됩니다. 우리는 그것을 보기 시작했습니다.트릭이 있습니다. 차트에서 꺼내기만 하면 그려지지 않고 다시 컴파일하면 숫자를 배우는 데 도움이 됩니다. 우리는 그것을 보기 시작했습니다.
내일 한번 더 봐야겠다. 오늘은 너무 늦었다. 네, 피곤해요