코딩 도움말 - 페이지 495

 
Mastercash:
Mladen, 나는 이해하지 못하는 것 같습니다. EMA 기간 10을 사용하여 목적을 위해 부동 r/s로 사용하고 있습니다. 기간을 1-기간으로 줄이면 r/s로 사용하기에는 너무 약할 것입니다.... ! 새 초가 시작될 때가 아니라 초 내에서 경보를 발하도록 코드를 조정하는 친절한 친구가 필요합니다. 저는 그냥 더 마른 코더입니다!

죄송합니다

잘못된 방식으로 코드 읽기

어쨌든 이 라인은

MainBuffer=iMA(NULL,60,10,0,MODE_SMA,PRICE_CLOSE,i);

차트 시간 프레임이 1시간과 다른 경우에는 잘못된 것입니다. iBarShift()를 사용하여 인덱스를 설정합니다. 이와 같이

정수 y = iBarShift(NULL,PERIOD_H1,시간);

MainBuffer=iMA(NULL,PERIOD_H1,10,0,MODE_SMA,PRICE_CLOSE,y);

또한 현재 열려 있는 막대에 대해 경고하기 위해 SIGNAL_BAR 상수 값을 1에서 0으로 변경합니다(그러나 코드를 약간 더 변경해야 함).

_________________

추신: 이 스레드( https://www.mql5.com/en/forum/180648 )에서 새로운 지표 중 일부를 가져오는 것이 좋습니다. 이러한 경우를 처리하는 방법에 대한 많은 예가 있기 때문입니다.

 

제발 제발 제발! 7번째 연속 강세 양초 또는 7번째 연속 약세 양초가 마감된 직후에 저에게 경고할 경고가 있는 표시기가 필요합니다.

핀, 도기 및 기타 형태의 양초는 계산되지 않습니다. 7 개의 약세 또는 강세 막대가 연속적으로있을 때 소리와 함께 팝업되는 황소 및 약세 촛불 경고 만.

전략이 완료되면 정말 감사하고 내 아이디어를 공유할 것입니다.

 

안녕, 믈라덴!

증가 시간 최적화의 이유를 알게 된 것 같습니다.

"iMAOnArray" 대신에 데이터를 매끄럽게 하고, MovingAverages.mqh를 포함합니다.

iMAOnArray를 사용하여 전략 테스터에서 지표를 한 번 실행:

2015.06 . 28 00 : 13 : 42.132 2015.06 . 15 23:59 EURUSD,H1: 0 : 02 : 40.525 (총 시간 0 : 02 : 40.556 ) 2015.06처리70897 틱 이벤트( 71897 막대, 142742 막대 상태) . 28 00 : 11 : 01.613 2015.06 . 15 23 : 59 TSI에르고딕 입력: p2= 7 ; p3= 5 ; p4= 3 ; p5= 3 ; 2015.06 . 28 00:11 : 01.587 2015.06 . 15 23 : 59

MovingAverages.mqh를 사용하여 전략 테스터에서 지표를 한 번 실행:

2015.06 . 28 00 : 14 : 10.625 2015.06 . 15 23:59 EURUSD,H1: 0 : 00 : 01.045 (총 시간 0 : 00 : 01.077 ) 2015.06처리70897 틱 이벤트( 71897 막대, 142742 막대 상태) . 28 00:14 : 09.577 2015.06 . 15 23 : 59 TSI_새 입력: p2= 7 ; p3= 5 ; p4= 3 ; p5= 3 ; 2015.06 . 28 00:14 : 09.546 2015.06 . 15 23 : 59 EA에서 새 지표를 사용할 때 거래가 없고 지표 창이 비어 있습니다.

최적화하는 동안 트랜잭션과 함께 실행되는 것으로 표시됩니다.

12 513.73 354 1.18 1.45 269.81 18.75% 1.18239793 p2=21 p3=9 p4=15 p5=28 s=4 stop=0.02 p=0.026 Lots=0.01 Prots=0.07

18 417.94 349 1.16 1.20 235.92 15.14% 1.15998398 p2=41 p3=19 p4=27 p5=36 s=1 stop=0.024 p=0.012 Lots=0.01 Prots=0.07

7 314.10 346 1.09 0.91 326.66 20.58% 1.08715973 p2=13 p3=21 p4=5 p5=4 s=1 stop=0.028 p=0.02 Lots=0.01 Prots=0.07

13 229.71 176 1.17 1.31 287.58 19.28% 1.16941715 p2=35 p3=15 p4=13 p5=4 s=4 stop=0.022 p=0.016 Lots=0.01 Prots=0.07

11 66.44 26 1.31 2.56 62.37 5.78% -1.00000000 p2=23 p3=27 p4=25 p5=16 s=31 stop=0.03 p=0.014 Lots=0.01 Prots=0.07

표시기를 고칠 수 있습니까?

tsi_new.mq4

파일:
tsi_new.mq4  5 kb
 
QuantF:
안녕, 믈라덴!

증가 시간 최적화의 이유를 알게 된 것 같습니다.

"iMAOnArray" 대신에 데이터를 매끄럽게 하고, MovingAverages.mqh를 포함합니다.

iMAOnArray를 사용하여 전략 테스터에서 지표를 한 번 실행:

2015.06 . 28 00 : 13 : 42.132 2015.06 . 15 23:59 EURUSD,H1: 0 : 02 : 40.525 (총 시간 0 : 02 : 40.556 ) 2015.06처리70897 틱 이벤트( 71897 막대, 142742 막대 상태) . 28 00 : 11 : 01.613 2015.06 . 15 23 : 59 TSI에르고딕 입력: p2= 7 ; p3= 5 ; p4= 3 ; p5= 3 ; 2015.06 . 28 00:11 : 01.587 2015.06 . 15 23 : 59

MovingAverages.mqh를 사용하여 전략 테스터에서 지표를 한 번 실행:

2015.06 . 28 00 : 14 : 10.625 2015.06 . 15 23:59 EURUSD,H1: 0 : 00 : 01.045 (총 시간 0 : 00 : 01.077 ) 2015.06처리70897 틱 이벤트( 71897 막대, 142742 막대 상태) . 28 00:14 : 09.577 2015.06 . 15 23 : 59 TSI_새 입력: p2= 7 ; p3= 5 ; p4= 3 ; p5= 3 ; 2015.06 . 28 00:14 : 09.546 2015.06 . 15 23 : 59 EA에서 새 지표를 사용할 때 거래가 없고 지표 창이 비어 있습니다.

최적화하는 동안 트랜잭션과 함께 실행되는 것으로 표시됩니다.

12 513.73 354 1.18 1.45 269.81 18.75% 1.18239793 p2=21 p3=9 p4=15 p5=28 s=4 stop=0.02 p=0.026 Lots=0.01 Prots=0.07

18 417.94 349 1.16 1.20 235.92 15.14% 1.15998398 p2=41 p3=19 p4=27 p5=36 s=1 stop=0.024 p=0.012 Lots=0.01 Prots=0.07

7 314.10 346 1.09 0.91 326.66 20.58% 1.08715973 p2=13 p3=21 p4=5 p5=4 s=1 stop=0.028 p=0.02 Lots=0.01 Prots=0.07

13 229.71 176 1.17 1.31 287.58 19.28% 1.16941715 p2=35 p3=15 p4=13 p5=4 s=4 stop=0.022 p=0.016 Lots=0.01 Prots=0.07

11 66.44 26 1.31 2.56 62.37 5.78% -1.00000000 p2=23 p3=27 p4=25 p5=16 s=31 stop=0.03 p=0.014 Lots=0.01 Prots=0.07

표시기를 고칠 수 있습니까?

tsi_new.mq4

표시기에서 수정할 사항이 없습니다.

문제는 표시기에 있는 것이 아니라 백테스터에 있는 것입니다.

어쨌든 iMAOnArray()는 기계 코드 수준에서 실행되고 ExponentialMAOnBuffer()는 P 코드 수준에서 실행되기 때문에 aMAOnArray()를 사용하는 것은 ExponentialMAOnBuffer()를 사용하는 것보다 훨씬 더 빨라야 합니다. iMAOnArray()가 더 빠르지 않다는 사실은 mt4의 새로운 빌드에 심각한 문제가 있음을 보여주는 것일 뿐입니다.

 
mladen:
표시기에서 수정할 사항이 없습니다.

문제는 표시기에 있는 것이 아니라 백테스터에 있는 것입니다.

어쨌든 iMAOnArray()는 기계 코드 수준에서 실행되고 ExponentialMAOnBuffer()는 P 코드 수준에서 실행되기 때문에 aMAOnArray()를 사용하는 것은 ExponentialMAOnBuffer()를 사용하는 것보다 훨씬 더 빨라야 합니다. iMAOnArray()가 더 빠르지 않다는 사실은 mt4의 새로운 빌드에 심각한 문제가 있음을 보여주는 것일 뿐입니다.

포럼에서 이 문제에 대해 여러 번 썼습니다. 좋지 않다. 버그가 수정되지 않을 것이라고 생각하십니까?

 
QuantF:
포럼에서 이 문제에 대해 여러 번 썼습니다. 좋지 않다. 버그가 수정되지 않을 것이라고 생각하십니까?

그것은 고쳐야 한다

그것이 될 것이라면 - 아무 생각도 없습니다. 백테스터 는 새 빌드가 나올 때마다 점점 더 나빠집니다. 너무 많은 것을 바라지는 않겠습니다.

 

가장 효율적인 방법으로 배열을 사용하는 방법을 설명하는 매뉴얼이 있습니까?

 
apprentice coder:
가장 효율적인 방법으로 배열을 사용하는 방법을 설명하는 매뉴얼이 있습니까?

mql은 C/C++와 유사한 방식으로 배열을 사용하므로 여기에서 시작하는 것이 좋습니다. Arrays - C++ Tutorials

피해야 할 것은 배열을 시리즈로 설정하는 것입니다. 그 경우에 크기 조정은 ... (극도로 비효율적) - 가장 좋은 방법은 C/C++에서와 같은 방식으로 배열 인덱싱을 사용하는 것입니다. 첫 번째(가장 오래된) 요소는 인덱스 0이고 마지막(최신) 요소 인덱스는 다음과 같습니다. 배열 크기 - 1

 

포럼의 @프로그래머와 코더는 아래에 첨부된 전문 고문에게 손익분기점 옵션을 추가할 수 있습니다.

 
douceurdange:
안녕하세요, RSI 라인이 rsi+볼린저 밴드 표시기의 볼린저 밴드로 돌아갈 때 화살표를 넣을 수 있습니까?

내가 갖고 싶은 경고의 모델로 cci nrp 고급 경고를 넣었습니다.

미리 감사드립니다

rsi__bollinger_bands.mq4 rsi__bollinger_bands.ex4 cci__-_nrp___mtf_advanced_alerts.ex4 cci__-_nrp__mtf_advanced_alerts.mq4

지표는 여기에 게시되었습니다: https://www.mql5.com/en/forum/general

사유: