백테스트에서 훌륭한 EA! - 페이지 133

 

2005년부터 백테스트 를 게시하고 싶었습니다.

결과는.. 다릅니다!

*편집하다*

미니가 아님, 1k 대신 10k로 시작함(아직 테스트 진행 중)

저는 백테스팅에 대해 매우 회의적입니다. 저는 아주 작은 변화로 엄청난 결과를 보았습니다.

특정 쌍과 시간 길이에 대한 백테스트를 설계할 수 있지만 한 달을 추가하면 그 반대가 되는 것과 같습니다.

 

매우 이상합니다. 다운로드 기능 을 통해 데이터를 업데이트하고 새 보고서를 생성했습니다.

*edit* , 이것은 빌드 200에 있었다는 것을 의미합니다.

 

이봐 플...

주간 비교 보고서(백테스트 대 DEMO 계정 )가 있습니다.

 

안녕

안녕!

나는 T15m에 대해 수용 가능한 결과로 MIG에서 발견된 CT의 무료 버전을 테스트했지만, GMT 8:00, 13 및 20 GMT에서 반복되는 손실이 있습니다. 거래시간을 금지하는 부분을 붙여넣으려고 했습니다

외부 문자열 TimeTradeHoursDisabled="08,13,20"; // 예 "00,01,02,03,04,05" GMT

extern int GMT=1; // North Finance의 경우 GMT = 3, Alpari GMT = 1, IBFX GMT = -1 등

외부 정수 MagicNumber=123000; // Magic Number -- 거래되는 모든 쌍에 대한 변경

// ----

int NotTradeHours1=25; // 시간이 거래되지 않음

int NotTradeHours2=25; // 시간이 거래되지 않음

int NotTradeHours3=25; // 시간이 거래되지 않음

int NotTradeHours4=25; // 시간이 거래되지 않음

int NotTradeHours5=25; // 시간이 거래되지 않음

int NotTradeHours6=25; // 시간이 거래되지 않음

나는 또한 끝을 추가하여 수정했다.

//+----------------------------------------------- -------------------+

//| 전문가 시작 기능 |

//+----------------------------------------------- -------------------+

정수 시작()

{

GetMarketInfo();

CyberiaLots();

계산확산();

FindSuitablePeriod();

CyberiaDecision();

VerbiageAndTimeCheck();

거래();

저장 통계();

리턴(0);

}

int VerbiageAndTimeCheck() {

문자열 comment_line="", comment_time="", comment_ver="";

문자열 sp = "--------------------------------\n";

comment_ver=StringConcatenate(시스템 이름," v. ",버전,"\n");

if (StringLen(TimeTradeHoursDisabled) > 1) {

NoTradeHours1 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,0,2));

}

if (StringLen(TimeTradeHoursDisabled) > 4) {

NoTradeHours2 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,3,2));

}

if (StringLen(TimeTradeHoursDisabled) > 7) {

NoTradeHours3 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,6,2));

}

if (StringLen(TimeTradeHoursDisabled) > 10) {

NoTradeHours4 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,9,2));

}

if (StringLen(TimeTradeHoursDisabled) > 13) {

NoTradeHours5 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,12,2));

}

if (StringLen(TimeTradeHoursDisabled) > 16) {

NoTradeHours6 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,15,2));

}

int h=TimeHour(CurTime());

int hadj=TimeHour(CurTime())-GMT;

if (((hadj) == NoTradeHours1) || ((hadj) == NoTradeHours2) || ((hadj) == NoTradeHours3) || ((hadj) == NoTradeHours4) ||

((hadj) == NoTradeHours5) || ((hadj) == NoTradeHours6)) {

BlockSell = 사실;

BlockBuy = 사실;

comment_time=StringConcatenate("잘못된 거래 시간: ", hadj, " GMT");

} 또 다른 {

BlockSell = 거짓;

블록 구매 = 거짓;

comment_time=StringConcatenate("좋은 거래 시간: ", hadj, " GMT");

}

comment_line = comment_ver + sp + comment_time;

if (IsTesting()==거짓)

주석(comment_line);

}

하지만 작동하지 않습니다

누군가이 문제를 해결하는 방법을 알고 있습니까?

다운로드한 CT를 첨부하여 MIG에서 )8,13,20 GMT를 제외하고 좋은 결과를 얻었습니다.

사용 중인 최신 CT를 게시할 수 있습니까?

감사해요

파코

파일:
 

좋아, CT로 몇 가지 이상적인 설정을 찾았습니다. 위험 코드에 올바르게 설정되지 않은 일부 변수가 있습니다. 이 아이디어는 Excel로 내보낸 위험 테이블을 사용하는 이후 버전에서 영감을 얻었지만 사실 상대적인 절대값 을 찾을 필요는 없습니다!! 절대값은 시장 상황에 따라 달라지지만 거래를 열거나 닫을 위험에 대한 상대값이 우리가 원하는 것입니다.

나는 이제 아주 오래된 버전 1.85f를 기반으로 쉽게 수정할 수 있는 3개의 간단한 extern var를 가지고 있습니다. 제 생각에는 이후 버전이 상황을 더 악화시켰습니다.

거의 항상 고정된 2핍 스프레드로 인해 테스트 및 데모용으로 NorthFinance를 사용합니다. (극단적으로 드문 조건에서 변경될 수 있음) IB 및 FDD와 같은 다른 항목은 문자 그대로 연간 수익의 막대한 60%를 잃을 수 있습니다!!

extern 이중 닫기 승수 = 1.5; 이 값은 마감 주문에 대한 위험 프로필을 변경합니다. 마감 위험은 항상 시작보다 작아야 합니다. 이 값은 공개 상태보다 적지만 기본 빌드보다 많습니다. 다시 말해서 우리는 시장에 진입하는 것이 두렵지만 이익을 잃는 것을 두려워합니다.) 때때로 시장이 또 다른 50핍으로 움직일 때 낭비처럼 보이지만 제 연구에 따르면 이것이 작동하려면 극도로 신중해야 합니다.

extern 이중 개방 승수 = 1.7; 이 값은 거래 시작에 대한 위험 프로필을 변경합니다. 더 크면 닫히므로 "안전한" 항목만 찾습니다. 1.0 값은 다른 모든 빌드를 나타내며 나는 확률을 높이고 위험을 줄였습니다. 트레이드 오프는 더 적은 거래입니다. 너무 높으면 거래 없이 며칠을 보낼 수 있지만 이익 요소는 극적으로 증가합니다.

외부 이중 StopBias = 1.1; 이 값은 자동 정지 손실에 대한 상대 위치를 증가시킵니다. 손절매는 변동적으로 시장의 함수여야 하므로 고정된 하드 스탑을 사용하지 마십시오. 20 스탑은 8월에 괜찮았을지 모르지만 ATR이 유로에서 100을 훨씬 넘을 때 확실히 지금은 아닙니다. 따라서 가능한 모든 곳에서 정지는 현재 시장 상황의 함수여야 합니다. 자동 손절매는 마지막 몇 개의 막대를 사용하고 ATR 플러스 스프레드를 계산합니다. 이것은 정류장이 정확히 우리가 원하는 위치인 노이즈 엔벨로프 외부에 있음을 의미합니다. GA 옵티마이저는 여기에서 기본값 1보다 약간 증가하면 스톱 뱅잉을 방지하고 노이즈 엔벌로프의 가장자리가 테스트될 때 단 2 또는 3핍만큼 정말 성가신 손실을 가져갈 수 있음을 발견했습니다.

나는 CCI를 필터로 사용합니다. 더 나쁜 것을 넣을수록 더 나빠질 것입니다. 왜냐하면 뒤처지는 것이 없으면 작업할 기록 추적을 결정할 수 없기 때문입니다. 시간 또는 뉴스 시간 필터를 사용하는 것을 잊어버리거나 CT에 대한 엔진의 대부분을 추적 중지하는 것은 이미 조정되지 않았습니다. 많은 수익성 있는 거래가 뉴스 중에 발생합니다. 절대값보다는 상대적인 결정과 %를 사용하십시오.

로트에 대한 내 위험은 0.4이고 최대 랏은 99로 변경되었습니다. 대부분의 브로커가 자동으로 100랏을 허용할 때 이익을 제한하는 요점을 10으로 제한하지 마십시오.

나는 똑똑한 여러분이 이것에 대해 생각하고 당신이 생각해내는 것을 보도록 둡니다. :)

1월 1일 오늘까지.

테스트 49504의 막대

1246996을 모델링한 진드기

모델링 품질 90.00%

초기 보증금 10000.00

총 순이익 97985.55

총 이익 224608.37

총 손실 -126622.82

이익 계수 1.77

예상 보수 176.23

절대 드로다운 953.60

최대 드로다운 18422.75 (17.57%)

상대적인 드로다운 32.86%(5034.65)는 엄청난 이익을 감안하면 상당한 수준이다.

총 거래 556

숏포지션 (원 %) 256 (89.45%)

롱포지션(원 %) 300(94.00%)

이익 거래(전체의 %) 511(91.91%) 성공률 90% 이상 매우 만족.

손실 거래(전체의 %) 45(8.09%) 자주 잃지 않습니다.

가장 큰

이익 거래 3894.00

손실 거래 -11830.00

평균

이익 거래 439.55

손실 거래 -2813.84

최고

연속 우승 (현금) 74 (19719.35)

연속 손실 (돈 손실) 3 (-2841.40)

최대

연속 이익(승수) 33358.89 (33)

연속 손실(손실 수) -11830.00 (1)

평균

13연승

연속 패배 1

 

저는 오늘 IBFX가 유로화를 6핍 스프레드까지 변동시키는 것을 본 후 계정을 폐쇄합니다. Davidsx의 예를 따라 FXDD로 계정을 개설하겠습니다. 나는 이것이 스프레드를 많이 사용하지 않는 브로커와 함께 아직 유용한 EA가 되기를 바랍니다.

 

나에게 메리 크리스마스. 내 새 계정이 열려 있고 @ fxdd에 자금이 지원됩니다. 나는 CT를 max lot=0.01로 가지고 있고 davidsx가 얻고 있는 75% 승리 패턴을 보기를 희망합니다. 그것은 좋을 것입니다. 나는 또한 fxdd가 포지션에 시간 제한이 없다는 것을 배우도록 권장됩니다. 내가 본 전략 중 일부는 1분 이내로 열려 있는 위치를 가장 잘 활용합니다.

 

죄송합니다 여러분, 제가 전선을 교차시켰습니다....

CT에 대한 최신 업그레이드를 여기에 게시했습니다.

https://www.mql5.com/en/forum/trading_systems

 

FXDD에는 데모에 마이크로 계정이 있습니까? 난 몰랐어

 
Aaragorn:
죄송합니다 여러분, 제가 전선을 교차시켰습니다....

CT에 대한 최신 업그레이드를 여기에 게시했습니다.

https://www.mql5.com/en/forum/trading_systems

우리가 다른 버전을 가지고 있다는 것을 아는 것이 좋습니다 ...

지금 테스트하고 결과를 v1.93b와 비교하려고 합니다...

그건 그렇고, FXDD 데모 계정의 1.93b는 백테스트와 매우 유사한 성능을 보여주었습니다... 그 차이는 거래가 적고 이익이 조금 적었기 때문에 CT가 갖는 것이 정상이므로 전혀 걱정할 필요가 없습니다. 연말(11월과 12월) 동안 평범한 실적;

1.95가 1.93b보다 더 나은 결과를 보여주지 않는다면 2007년까지 FXDD Live 계정에서 1.93b부터 시작할 것입니다.

모두에게 메리 크리스마스!!

그때까지 글을 올리지 못하면 새해 복 많이 받으세요!!