다른 "거래 전략"에 대해 자세히 알아보기 - 페이지 4

 
doshur : 평균 인은 항상 괜찮습니다. 로트 크기가 크고 엑시트하려는 경우 원하는 가격으로 엑시트할 볼륨 이 없을 수 있습니다.

뉴스가 나오면 이 시스템이 요즘 aud처럼 살아남을 수 있을까?

Imo, lot_size가 충분히 작으면 무엇이든 살아남을 수 있습니다. 그것이 당신에게 가치가 있다면 그것은 완전히 또 다른 질문입니다. 요즘 Aud에서 더 잘할 수 있는 시스템을 제출할 수 있습니까? 참고로 이것은 다른 사람들의 수익성 있는 시스템에 대한 스레드가 아닙니다. 이것은 사람들이 다른 전문가를 제출하고 전략에 대한 좋은 점과 나쁜 점을 검토하는 것이 제 의도입니다. 수익성이 있건 없건 중요하지 않습니다.
 

YesLstTrdWin() 함수 내에서 버그를 찾았습니다 .

 bool YesLstTrdWin(){
     if (! PositionSelect (CurSetSymbol)){ return ( false );}
     ulong    PosType= PositionGetInteger ( POSITION_TYPE );
     ulong    PosOpTime= PositionGetInteger ( POSITION_TIME );
     double   PosPrice= PositionGetDouble ( POSITION_PRICE_CURRENT );
     HistorySelect (PosOpTime, TimeCurrent ());
     int DealsTotal= HistoryDealsTotal ();
     for ( int i=DealsTotal- 1 ; i>= 0 ; i--){
         ulong DealTicket= HistoryDealGetTicket (i);
         ulong DealEntry= HistoryDealGetInteger (DealTicket, DEAL_ENTRY );
         if (DealEntry!= DEAL_ENTRY_IN ){ continue ;}
         ulong DealMagic= HistoryDealGetInteger (DealTicket, DEAL_MAGIC );
         if (DealMagic!=SystemMagic1){ continue ;}
         string DealSymb= HistoryDealGetString (DealTicket, DEAL_SYMBOL );
         if (DealSymb!=CurSetSymbol){ continue ;}
         ulong   DealType= HistoryDealGetInteger (DealTicket, DEAL_TYPE );
         double DealPrice= HistoryDealGetDouble (DealTicket, DEAL_PRICE );
         if (DealType== DEAL_TYPE_BUY   && PosPrice>DealPrice){ return ( true );}
         if (DealType== DEAL_TYPE_SELL && PosPrice<DealPrice){ return ( true );} //This Line Was Left Out.
         return ( false );
    }   return ( false );
}

나는 위치 범위 내에서 평균을 낸 마지막 판매 거래 검사기를 잊어 버렸습니다.

*또 다른 참고 사항: 내부 및/또는 안티 그리드 평균화는 추세 시스템에 대한 효과적인 전략이 될 수 있습니다.

 
Ubzen :

YesLstTrdWin() 함수 내에서 버그를 찾았습니다 .

나는 위치 범위 내에서 평균을 낸 마지막 판매 거래 검사기를 잊어 버렸습니다.

*또 다른 참고 사항: 내부 및/또는 안티 그리드 평균화는 추세 시스템에 대한 효과적인 전략이 될 수 있습니다.

안녕하세요 Ubzen님

나는 이 스레드를 얼마 전에 보았고 기여할 생각이었습니다. 늦어서 죄송합니다. 이것이 mql5 내의 미니 포럼 스레드 중 하나가 되기를 바랍니다. 꾸준한 수익을 위해 최적화되지 않은 무작위 신호를 사용하고 있다는 사실은 확실히 유망합니다. 저는 아직 실제로 신호를 연구하지 않았습니다. 사실 오늘 방금 코드를 보고 MaxDDCurrency() 함수로 바로 확대했습니다. 버그라고 생각되는 라인이 있는데..

이 경우

 if (TempDD>MaxDDCurency){ return ;}

이게 될까?

 if (TempDD<=MaxDDCurency){ return ;}

다른 일반적인 참고 사항. 특히 스프레드에 관한 한 전략 테스터 의 가격 데이터가 얼마나 신뢰할 수 있다고 생각하십니까?

추신: 곧 내 것 중 하나를 게시할 예정입니다.

 

너도 부르는 것 같아

BrkEveEquity();

틱에. HighestEquity() 함수 내에서, 즉 새로운 주식 최고가 설정될 때 이것을 호출해야 하지 않습니까? 내 의견이 잘못된 것처럼 보인다면 죄송합니다. 아직 실제로 전략 테스터 에서 EA를 직접 테스트하지 않았지만 이 글을 작성할 때 당신이 생각하고 있었던 것을 느낄 수 있을 것이라고 생각했습니다.

 
ssn : 안녕 Ubzen, 나는 이 스레드를 얼마 전에 보았고 기여할 생각이었습니다. 늦어서 죄송합니다. 이것이 mql5 내의 미니 포럼 스레드 중 하나가 되기를 바랍니다. 꾸준한 수익을 위해 최적화되지 않은 무작위 신호를 사용하고 있다는 사실은 확실히 유망합니다. 저는 아직 실제로 신호를 연구하지 않았습니다. 사실 오늘 방금 코드를 보고 MaxDDCurrency() 함수로 바로 확대했습니다. 버그라고 생각되는 라인이 있는데..

이것이 있어야합니까? 다른 일반적인 참고 사항. 특히 스프레드에 관한 한 전략 테스터의 가격 데이터가 얼마나 신뢰할 수 있다고 생각하십니까? 추신: 곧 내 것 중 하나를 게시할 예정입니다.

전체 기능:

 void MaxDDCurency(){
     int TempDD=AcountEquity-HighesEquity;
     if (TempDD>MaxDDCurency){ return ;}
    MaxDDCurency=TempDD;
}

1) 통화의 최대 인출액을 설정합니다. 이 함수는 같은 이름을 가진 전역 변수를 계정 통화 에서 -음수 최저 드로다운으로 설정합니다. 값이 음수이므로 반대로 생각하고 싶을 것입니다. 예 Highest_Equity=10,000. Account_Equity=9,500 . $ -500의 최대 손실을 원합니다. [9,500 - 10,000]으로 작동합니다. 그런 다음 Temporary Draw Down이 -500보다 작으면 새 MaxDD로 등록하고 싶습니다.

2) 스프레드는 오늘날 대부분의 사람들이 지불하는 것보다 전략 테스터 에서 훨씬 높습니다. 많은 브로커가 하위 핍을 제공하기 때문에 제 의견입니다. 가격 데이터는 그다지 중요하지 않습니다. EA는 1분 막대 내에서 처리하지 않고 첨부된 차트의 m1 막대가 열릴 때만 처리합니다. 데이터에 m1 막대 할당량이 누락되지 않는 한 이 방법은 충분히 신뢰할 수 있습니다.

3) 제가 받은 결과는 조립 후 처음으로 얻은 결과입니다. 그 후 나는 그다지 유망하지 않은 다른 테스트를 실행했습니다. 그러나 내가 실행한 3개의 다른 테스트에도 불구하고 시스템은 약간의 이익이 나거나 약간의 수익성이 없었습니다. 그러나 네, 최적화되지 않은 무작위 시스템이 2008년 위기를 통해 2012년까지 계속 살아남았다는 사실은 여전히 유효합니다. 아마도 그러한 시스템을 최적화하는 것은 추가 연구의 주제가 될 수 있습니다. 예: 개인적인 지시, **무작위 권리보다 더 나빠질 수는 없습니다 ;)

4) 물론, 당신이 항상 가르친 시스템은 흥미롭고 그 시스템에 대해 당신을 괴롭히는 모든 것을 게시합니다. 나는 그러한 문제에 대응할 수 있는 아이디어를 제안하려고 노력할 것입니다.

 
ssn : 너도 온틱을 부르는 것 같다. HighestEquity() 함수 내에서, 즉 새로운 주식 최고가 설정될 때 이것을 호출해야 하지 않습니까? 내 의견이 잘못된 것처럼 보인다면 죄송합니다. 아직 실제로 전략 테스터에서 EA를 직접 테스트하지 않았지만 이 글을 작성할 때 당신이 생각하고 있었던 것을 느낄 수 있을 것이라고 생각했습니다.

전체 기능:

 void BrkEveEquity(){
     if (SysMagTotCnt()!= 0 ){ return ;}
    BrkEveEquity=HighesEquity;
    BrkEveEquTme=( int ) TimeCurrent ();
    SysCloseMode= false ;
}
지금 꽤 오랫동안 사용한 손익분기 주식. 언젠가 이 함수는 Equity_High 함수 안에 있지만 다음과 같은 이유로 오래전에 그 위치에서 제거했다고 생각합니다. 1) 손익분기 지분이 Equity_High 내에 있으면 Equity_High를 대신 사용할 수 있으므로 BE가 필요하지 않습니다. 2) System_Magic_Total_Count==0이 아닌 새로운 Account_Equity High에 도달했을 때 Equity_High를 설정하고 싶습니다. 3) All_Symbols가 닫혀있을 때 Break_Even을 설정하고 싶습니다. 이것은 라이브에서 거래할 때 다음과 같은 이점을 제공합니다. all_positions를 닫으면 부정적인 미끄러짐이 발생할 수 있습니다. 예를 들어 새 목표는 Account_Balance + Target$$ 대신 Equity_High + Target$$$이 됩니다.
 

- 네, DD는 음수입니다. 나는 그것을 본 적이 없습니다. 고마워

- m1 오픈 프라이스도 매도가 있다고 생각합니다. 입찰에 참가한 경우 요청에 따라 종료해야 합니다(예: 공매도인 경우). mt5 데이터와 사용자 지정 고정 스프레드로 테스트를 수행했는데 결과가 확연히 다릅니다.

- 무작위 신호에 대한 접근 방식은 기술 기반의 출품작인 경우 갈 수 있는 방법이라고 생각합니다. 더 나은 최적화를 유지할 수 있다면... 제 생각에는. ;)...

- 내가 게시할 시스템은 SOM을 사용합니다... 실제로는 재사용 가능한 클래스입니다. 최종 수정을 해야 합니다...

- 알겠습니다. BE에서는 확실합니다. 이제 MinPerMinLot은 모든 위치가 마감된 이후 시간에 비례하여 볼륨을 설정하는 데 사용하는 고정 변수입니다.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
  • www.mql5.com
Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5
 
ssn :

- 네, DD는 음수입니다. 나는 그것을 본 적이 없습니다. 고마워

- m1 오픈 프라이스도 매도가 있다고 생각합니다. 입찰에 참가한 경우 요청에 따라 종료해야 합니다(예: 공매도인 경우). mt5 데이터와 사용자 지정 고정 스프레드로 테스트를 수행했는데 결과가 확연히 다릅니다.

- 무작위 신호에 대한 접근 방식은 기술 기반의 출품작인 경우 갈 수 있는 방법이라고 생각합니다. 더 나은 최적화를 유지할 수 있다면... 제 생각에는. ;)...

- 내가 게시할 시스템은 SOM을 사용합니다... 실제로는 재사용 가능한 클래스입니다. 최종 수정을 해야 합니다...

- 알겠습니다. BE에서는 확실합니다. 이제 MinPerMinLot은 모든 위치가 마감된 이후 시간에 비례하여 볼륨을 설정하는 데 사용하는 고정 변수입니다.

1) 천만에요.

2) 동의합니다. mt5에서 스프레드를 수정할 수 있기를 바랍니다. 그러나 자신을 속이지 말고 현실적인 스프레드로 테스트하는 것도 중요합니다.

3) 내 경험에 따르면 최적화된 시스템에서 한 달 간의 라이브 테스트는 일반적으로 예상한 결과와 완전히 다릅니다. 이 테스트 방식은 일반적으로 내 라이브 테스트 중에 예상 통계를 생성하지만 일반적으로 전략 테스터 내에서 죽는 것과 같은 방식으로 죽습니다.

4) 케이

5) 네. 거의 같지만 "account_equity가 >= 손익분기점"인 것으로 보는 것이 훨씬 좋습니다. Break_Even_Equity 함수에서 Set_Break_Even_Time을 가져왔습니다. 개별 변수를 고유한 set_function으로 설정하는 것이 다른 set_function으로 묶는 것보다 재사용이 훨씬 더 쉽다는 것을 알고 있습니다.

추세가 진행됨에 따라 제비를 추가하는 추세 추종 시스템을 다음으로 생각하고 있습니다.

 
Ubzen :

1) 천만에요.

2) 동의합니다. mt5에서 스프레드를 수정할 수 있기를 바랍니다. 그러나 자신을 속이지 말고 현실적인 스프레드로 테스트하는 것도 중요합니다.

3) 내 경험에 따르면 최적화된 시스템에서 한 달 간의 라이브 테스트는 일반적으로 예상한 결과와 완전히 다릅니다. 이 테스트 방식은 일반적으로 내 라이브 테스트 중에 예상 통계를 생성하지만 일반적으로 전략 테스터 내에서 죽는 것과 같은 방식으로 죽습니다.

4) 케이

5) 네. 거의 같지만 "account_equity가 >= 손익분기점"인 것으로 보는 것이 훨씬 좋습니다. Break_Even_Equity 함수에서 Set_Break_Even_Time을 가져왔습니다. 개별 변수를 고유한 set_function으로 설정하는 것이 다른 set_function으로 묶는 것보다 재사용이 훨씬 더 쉽다는 것을 알고 있습니다.

추세가 진행됨에 따라 제비를 추가하는 추세 추종 시스템을 다음으로 생각하고 있습니다.

4)...
파일:
SignalSOM.mqh  24 kb
 
ssn : 4)...
??? 당신은 규칙 에 따라 추가 물건이 있습니까? #1, #3, #4가 누락된 것 같습니다.