코딩 도움말 - 페이지 408

 
airquest:
글쎄, 여전히 ... 여기에 몇 가지 테스트가 있습니다.

- 기본 설정(최적화 없음, WriteCSV를 True로): Microsoft Excel - BB+CCI-EURUSD-H1-2014.12.18 00h11-SA1.csv

- 최적화를 True로, PeriodMin을 20으로, PeriodMax를 20으로 설정: Microsoft Excel - BB+CCI-EURUSD-H1-2014.12.18 00h13-SA1.csv

첫 번째는 일관된 값을 제공합니다(CSV 파일과 화면 결과 일치). 둘 다 동일한 변수에서 나오므로 정상입니다. 그러나 두 번째 결과는 화면 결과와 비교하여 옵티 결과가 거의 10배가 됩니다. 그래도 결국 같은 결과가 나와야 하는데...

어쨌든, 서두르지 마세요. 시간이 지나면 무엇이 문제인지 알게 될 것입니다. Mladen의 친절한 도움에 감사드립니다.

안녕하세요 에어퀘스트입니다.

전략 테스터에 대한 매우 흥미로운 대안에 감사드립니다... 매우 창의적이고 재능있는 코딩 부분에 대해...!

나는 당신의 지표를 조금 가지고 놀았습니다 ...

그리고 총계에 대해 두 개의 다른 변수가 있는 것 같습니다...

일반 실행을 위한 하나 = TotalTrades...

그리고 최적화 실행에 대한 하나 = totalTrades...

그러나...귀하의 댓글에는 정상 실행된 TotalTrades만 표시됩니다...

계속해서 Optimized...totalTrades...를 댓글에 추가하고 퍼즐이 해결되는지 확인하십시오...

이것은 화면 표시와 스프레드시트 합계 간의 차이에 대한 귀하의 질문에 대한 답이 될 수 있기를 바랍니다.

도움이 되었기를 바랍니다,

로버트

 
cosmiclifeform:
안녕하세요 에어퀘스트입니다.

전략 테스터에 대한 매우 흥미로운 대안에 감사드립니다... 매우 창의적이고 재능있는 코딩 부분에 대해...!

나는 당신의 표시기를 조금 가지고 놀았습니다 ...

그리고 총계에 대해 두 개의 다른 변수가 있는 것 같습니다...

일반 실행을 위한 하나 = TotalTrades...

그리고 최적화 실행을 위한 하나 = totalTrades...

그러나...귀하의 댓글에는 정상 실행된 TotalTrades만 표시됩니다...

계속해서 Optimized...totalTrades...를 댓글에 추가하고 퍼즐이 해결되는지 확인하십시오...

이것은 화면 표시와 스프레드시트 합계 간의 차이에 대한 귀하의 질문에 대한 답이 될 수 있기를 바랍니다.

도움이 되었기를 바랍니다,

로버트

최종 결과가 정확할지는 확실하지 않습니다. 문제는 opti 함수 에서 오는 총 거래를 표시하여 함수가 잘 실행되고 있는지 여부를 확인할 수 있다는 것입니다. 또한 double 함수에서 둘 이상의 매개변수를 반환하는 방법을 잘 모릅니다(잔액과 승률도 반환해야 함). 그러나 주된 이유는 결과에 차이가 있음을 확인하고 함수에서 뭔가 잘못되었을 것입니다 ...

 

안녕하세요, 저는 방금 RSI를 기반으로 이 사용자 지정 지표를 작성했습니다.

EA에서 사용할 생각이 있습니다. 작성하는데 도움이 필요합니다...

매수전용 전략입니다.

모든 상승 신호에 매수... 하락 신호에 모두 청산

이상적으로는 EA는 닫기 없이 연속되는 각 업 신호에 대해 로트 크기를 증가시킵니다. (물론 최대치로)

지표는 RSI가 설정 수준 아래/위를 넘을 때마다 차트에 화살표를 표시하여 작동합니다.

arrow_rsi.mq4

파일:
arrow_rsi.mq4  3 kb
 
airquest:
최종 결과가 정확할지는 확실하지 않습니다. 문제는 opti 기능에서 오는 총 거래를 표시하여 기능이 잘 실행되고 있는지 확인할 수 있다는 것입니다. 또한 double 함수에서 둘 이상의 매개변수를 반환하는 방법을 잘 모릅니다(잔액과 승률도 반환해야 함). 그러나 주된 이유는 결과에 차이가 있음을 확인하고 함수에서 뭔가 잘못되었을 것입니다 ...

에어퀘스트

함수에서 필요한 만큼의 매개변수를 "반환"하려면 함수 에 대한 참조로 매개변수를 전달하십시오. 이 같은 :

이중;

더블 b;

더블 c = testFunction(a,b);

이중 tectFunction(더블& _a,더블& _b)

{

_a = 1;

_b = 2;

반환(_a+_b);

}

그 후 a와 b는 testFunction에 의해 값 1과 2를 할당받을 것입니다(이 예제의 경우 암시적으로 3개의 값을 "반환") - 나는 단지 같은 이름을 가질 필요가 없다는 것을 보여주기 위해 함수에서 _a와 _b 이름을 사용했습니다 참조로 전달할 때 그렇지 않으면 전혀 할 필요가 없습니다)

 
airquest:
최종 결과가 정확할지는 확실하지 않습니다. 문제는 opti 기능에서 오는 총 거래를 표시하여 기능이 잘 실행되고 있는지 확인할 수 있다는 것입니다. 또한 double 함수에서 둘 이상의 매개변수를 반환하는 방법을 잘 모릅니다(잔액과 승률도 반환해야 함). 그러나 주된 이유는 결과에 차이가 있음을 확인하고 함수에서 뭔가가 잘못되어야 함을 확인하는 것입니다 ...

안녕하세요 에어퀘스트입니다.

내가 보기에... 당신의 지표는 잘 작동하는 것 같습니다.

나는 여전히 그것이 "표시 값" 문제라고 생각하며... 어떤 계산 문제도 아닙니다.

다음은 지표에서 일어나는 일입니다...

프로그램에는 2가지 옵션이 있습니다 - 1) 일반 실행 2) 최적화 실행

그들은 배타적이거나 선택 사항이 아닙니다 ...

최적화가 선택되지 않은 경우...프로그램은 일반 실행만 수행합니다...

Optimization이 선택되면... 프로그램은 여전히 Normal Run을 수행하고... 그런 다음 Optimization Run을 수행합니다...그래서 두 값을 모두 가져옵니다...

그러나... Normal Run의 값만 화면 Comments...에 표시되고 Optimization 값은 전혀 표시되지 않습니다.

화면에 표시된 최적화 값이 스프레드시트 값 과 동일함을 보여주는 테스트가 첨부되어 있습니다.

이것은 당신의 모든 계산이 괜찮다는 것을 보여줍니다 ...

또한 스프레드시트의 마지막 레코드를 사용하여 최종 최적화 값을 얻는 것처럼 보입니다...

또한 다른 차트/지표를 로드하지 않고 실행하는 것이 좋습니다. 한 번에 몇 개의 선택된 값만 사용하여 테스트합니다.

20개 이상의 차트가 실행 중이고... MT4는 이 표시기에 대한 계산을 수행하므로 응답하지 않습니다...

최적화 테스트를 실행하기 위해 깨끗한 MT4 설정을 사용하는 것이 좋습니다...

하지만 좋은 소식은... 숫자를 계산하고 보고서를 작성하는 동안 다른 작업을 할 수 있으므로 시스템이 잠기지 않습니다.

그동안... 아래 스크린샷에서 알 수 있는 한... 표시기가 제대로 작동하는 것 같습니다...

BTW...정말 멋진 코딩이네요... 공유해주셔서 정말 감사합니다...!

도움이 되었기를 바랍니다,

로버트

 
cosmiclifeform:
안녕 Airquest, 내가 보기에... 당신의 표시기는 잘 작동하는 것 같습니다.

천만에요. 좋은 말씀 감사합니다. 아이디어는 실제로 간단한 전략을 백테스트하기 위해 mt4 전략 테스터 최적화(내가 생각하기에 너무 느리고 형편없다고 생각함)를 대체하는 것입니다. 그리고 예, 로드하고 계산을 수행할 때까지 약간 기다려야 하지만 내가 본 바로는 일반 최적화보다 이미 빠르고 편리합니다.

하지만 여전히 인디케이터에 문제가 있고 제대로 작동하지 않는 것 같아요. 최적화에서 나온 결과로 화면 텍스트를 교체하면 이러한 결과가 옳고 그른지 전혀 표시되지 않습니다. 마치 녹슨 자동차에 그림을 그리는 것과 같습니다.

opti 기능이 잘못된 결과를 제공한다고 생각합니다. 스크린샷에서 CSV의 결과가 5'307 거래를 제공하는 것을 볼 수 있습니다. 그것은 지붕에서 멀리 떨어져 있습니다. 그것은 당신이 당신의 화면에 얼마나 많은 막대를 가지고 있는지에 달려 있지만, 그 전략이 5'307 거래를 허용하는 것은 불가능합니다. 확실히 하기 위해 화살표를 셀 필요가 없습니다. 이 스크린샷에서 했던 것처럼 테스트할 막대 수를 줄일 수 있습니다(저는 100개 막대로 설정했습니다).

여기에서 100개의 막대에 대해 수행할 거래가 10개뿐이고 4명의 승자(화살표 계산)가 있는 반면 옵티 결과에는 89개의 거래가 수행되었음을 알 수 있습니다. 따라서 시각적 백테스트를 기반으로 하면 화면 결과는 옳고(opti가 말한 최상의 기간 동안) CSV는 틀립니다. 따라서 거래를 계산하거나 어떤 설정이 가장 좋은지 결정하기 위해 CSV 결과를 신뢰해서는 안 됩니다.

그래서 나는 문제를 더 간단한 방법으로 넣었다. Optimization 이중 함수와 Start int 함수(주 계산)에서 나오는 결과를 화면에 표시하는 간단한 표시기(첨부)를 만들었습니다. 따라서 두 결과가 서로 다른지 확인하기 위해 CSV를 작성할 필요가 없습니다.

이 지표를 기반으로 하여 내 (간단한) 질문은 다음과 같습니다. 왜 EARTH ON EARTH 2개의 정확한 동일한 계산(시작 기능의 하나와 최적화 이중 기능의 다른 하나) GIVE DIFFERENT RESULTS? 누군가 내가 이것을 이해하도록 도울 수 있다면 그것은 정말 굉장할 것입니다. 왜냐하면 저는 정말로 그것을 이해하지 못하기 때문입니다. 내가 아는 한, 둘은 정확히 동일하며 동일한 결과가 나와야 합니다. 정말 감사합니다.

추신 : 표시기가 여전히 약간 느리고 결과가 표시될 때까지 몇 초 정도 기다려야 할 것입니다. 그러나 결과가 나오면 소리를 재생합니다.

파일:
sa1.png  78 kb
sa3.png  41 kb
 

안녕하세요 에어퀘스트입니다.

"샘플 테스트"를 시도했지만 작동하지 않았습니다. 코드를 보니 400줄 이상이 삭제되었습니다... 그래서 그냥 두었습니다.

나는 당신의 원래 코드를 테스트하기 위해 돌아갔고... 그리고 나는 당신이 "너무 많은 거래"의 문제에 대해 말하는 것을 보기 시작했다고 생각합니다...

테스트를 간단하고 빠르게 유지하기 위해... Bands만 사용하여 테스트하고... 결과를 더 빨리 볼 수 있도록 2회만 실행하도록 설정(Bands 10 및 Bands 20)을 최소화했습니다.

나는 또한 "BarsToCount"에 초점을 맞추었습니다. 왜냐하면 그것이 거래 수와 직접 관련이 있는 것 같기 때문입니다...

답을 찾지는 못했지만... 단서가 더 있을 수 있습니다...

"BarsToCount"... 작동하지 않는 것 같습니다...

1 Bar...2 Bars... 및 100 Bars Back으로 코드를 실행했습니다.

그리고 모두 정확히 같은 결과를 얻었습니다...그렇지 않아야 합니다...더 많은 막대가 더 많은 거래와 같아야 하고...더 적은 막대가 더 적은 거래와 같아야 하기 때문입니다.

내가 한 3회 실행의 스크린샷을 첨부했습니다... "BarsToCount"만 변경...

아마도 이 단서가 다른 문제를 추적하는 데 도움이 될 것입니다. 답을 찾는 데 행운을 빕니다.

도움이 되었기를 바랍니다,

로버트

 

마침내 나는 작동하는 버전을 만들 수 있었다. 이제 opti 결과가 정확하고 화면 결과에 해당합니다. 방금 이중 기능을 삭제하고 시작 기능에 모두 넣었습니다. 따라서 이제 테스터 모드 (기본 설정 사용)에서 실행하거나 최적화 모드(아무 것도 표시하지 않고 CSV 파일만 작성)에서 실행하는 것 중 하나만 선택할 수 있습니다. 최적화를 실행한 후 테스터 모드로 돌아가서 결과가 올바른지 확인할 수 있습니다.

문제를 발견하면 이 스레드를 망치고 싶지 않으므로 PM이 더 나은 방법으로 알려주세요. 여러분, 도와주셔서 감사합니다. 이 포럼은 훌륭하고 사람들이 서로 동기를 부여하고 도움을 주기 때문에(대부분의 경우) 이것이 제가 여기에 게시하는 이유입니다. 이제 백테스팅을 시작하겠습니다.

 
cosmiclifeform:
안녕하세요 에어퀘스트입니다.

로버트, 도와줘서 고마워. 위에 게시한 버전을 참조하십시오. 이제 작동합니다.

추신: 막대 수 를 제한하려면 UseAllBars를 False로 설정해야 합니다. 아마 못 보셨을 겁니다.

문안 인사.

 

안녕하세요 에어퀘스트입니다.

잘 추적하고 작동하도록 하는 것이 좋습니다...!

이번주에 한번 놀아봐야겠습니다...

감사합니다.

로버트