다중 통화 고문에 대한 질문 - 페이지 6

 

글쎄, 이것은 여기에 불만이 아닙니다.

이제 막 규칙을 처음 본 것 같습니다. .... 이 문제는 이미 논의되었습니다 - 챔피언십의 첫 번째 분기에서 - Ch. 페이지

 

Metaquotes 기록에서 EA를 테스트하고 최적화하고 있습니다. 처음에는 빌드 208(Alpari용 설치)에서 작업했습니다. 카운터 포인트가 필요하지만 209에서는 필요하지 않습니다. 그런 다음 Metaquotes에서 동일한 방식으로 다운로드한 동일한 매개변수 값과 동일한 기록을 가진 EA가 빌드 209(Metaquotes 설치)에서 테스트되었습니다. 결과는 크게 다릅니다. 히스토리의 막대 수와 시뮬레이션된 틱 수 역시 동일한 테스트 품질에서 다릅니다. Plz는 빌드 208 및 209 테스터의 다른 알고리즘에서 이유를 말하거나 한 경우에는 기호(스프레드, 스왑, 마진, 정지 수준 등)에 대한 설정을, 두 번째 경우에는 Alparish를 선택합니다. - 메타 따옴표? 아니면 다른 이유가 있습니까? 그리고 Metaquotes 데이터에 대한 올바른 테스트 및 최적화를 수행하는 방법 - Alpari의 빌드 208이 포함된 스토리? 빌드 208(Metaquotes 설치)은 어디에서 다운로드할 수 있습니까?

모든 .hst 파일을 삭제한 후 Renat의 레시피 'Automated Trading Championship 2007: Common Mistakes in Expert Advisors' 에 따라 ZY History가 업로드되었습니다.

전략 테스트 보고서
노동자
MetaQuotes 데모(빌드 208)


상징 EURUSD(유로 vs USD)
기간 15분 (M15) 1999.01.05 13:00 - 2007.09.07 22:45
모델 모든 틱(각 틱의 프랙탈 보간으로 사용 가능한 모든 가장 작은 기간을 기준으로 함)
옵션
역사의 바 215177 시뮬레이션된 진드기 13375536 시뮬레이션 품질 89.96%
초기 보증금 10000.00
순이익 3484.57 총 이윤 14828.81 총 손실 -11344.24
수익성 1.31 우승 기대 7.20
절대 드로다운 896.44 최대 드로다운 1255.96 (12.12%) 상대적인 하락 12.12% (1255.96)
총 거래 484 숏포지션(%원) 249 (47.79%) 롱포지션(%원) 235명 (52.77%)
수익성 있는 거래(전체의 %) 243 (50.21%) 거래 손실(전체의 %) 241 (49.79%)
가장 큰 수익성 있는 거래 426.34 무역 손실 -99.96
중간 수익성 있는 거래 61.02 무역 손실 -47.07
최대 금액 연속 우승(이익) 6 (466.42) 연속 손실(손실) 7 (-275.39)
최고 연속 이익 (승수) 653.20 (4) 연속 손실(손실 수) -286.62 (3)
평균 연속 이득 2 지속적인 손실 2

전략 테스트 보고서
노동자
MetaQuotes 데모(빌드 209)


상징 EURUSD(유로 vs USD)
기간 15분 (M15) 1999.01.05 13:00 - 2007.09.07 22:45 (1970.01.01 - 2007.09.08)
모델 모든 틱(각 틱의 프랙탈 보간으로 사용 가능한 모든 가장 작은 기간을 기준으로 함)
옵션
역사의 바 215437 시뮬레이션된 진드기 15419309 시뮬레이션 품질 89.96%
초기 보증금 10000.00
순이익 1882.77 총 이윤 13653.61 총 손실 -11770.84
수익성 1.16 우승 기대 3.82
절대 드로다운 896.21 최대 드로다운 1331.85 (12.52%) 상대적인 하락 12.52% (1331.85)
총 거래 493 숏포지션(%원) 263 (48.67%) 롱포지션(%원) 230 (51.30%)
수익성 있는 거래(전체의 %) 246 (49.90%) 거래 손실(전체의 %) 247 (50.10%)
가장 큰 수익성 있는 거래 426.34 무역 손실 -99.96
중간 수익성 있는 거래 55.50 무역 손실 -47.66
최대 금액 연속 우승(이익) 6 (466.42) 연속 손실(손실) 7 (-275.39)
최고 연속 이익 (승수) 522.72 (3) 연속 손실(손실 수) -318.74 (5)
평균 연속 이득 2 지속적인 손실 2

 

분명히 요점은 인용문 제출에 있습니다. 예를 들어, 막대의 시가/마감 가격은 역사적 버전에 따라 약간 다릅니다. 즉, 막대 내부의 가격 움직임이 약간 다르게 모델링됩니다! 그리고 stop = 40/50으로 이것은 이미 영향을 미칠 것입니다.

또한 완전히 명확하지 않습니다. mt4 Alpari에서 두 번 모두 테스트 했습니까? (다른 따옴표로)

아니면 MT4 MQ에서 두 번째로? 아마도 다른 스프레드가 있을 것입니다. 그리고 500번의 거래에 대해 - 이미 1핍은 "-500"입니다.

스왑도 똑같고...

 
rid :

분명히 요점은 인용문 제출에 있습니다. 예를 들어, 막대의 시가/마감 가격은 역사적 버전에 따라 약간 다릅니다. 즉, 막대 내부의 가격 움직임이 약간 다르게 모델링됩니다! 그리고 stop = 40/50으로 이것은 이미 영향을 미칠 것입니다.

또한 완전히 명확하지 않습니다. mt4 Alpari에서 두 번 모두 테스트 했습니까? (다른 따옴표로)

아니면 MT4 MQ에서 두 번째로? 아마도 다른 스프레드가 있을 것입니다. 그리고 500번의 거래에 대해 - 이미 1핍은 "-500"입니다.

스왑도 똑같고...


여기 피드는 무엇입니까? 인용문은 Metaquotes History Center에서 두 터미널로 업로드됩니다. 첫 번째 터미널은 Alpari 설치(빌드 208)에서 생성되었고 두 번째 터미널은 Metaquotes 설치(빌드 209)에서 생성되었습니다. 둘 다 테스트 계정(챔피언십 참가를 위해 Metaquotes에서 발급)에 하나씩 로그인하고 레나트의 처방에 따라 견적이 업로드되었습니다. 처음 약 300개의 거래는 거의 1:1로 진행되고(이는 시세, 스프레드, 스왑의 정체성을 확인합니다...) 그 다음에는 순서가 맞지 않습니다(상태 참조). 같은 품질의 모델링에 당황 :(

그리고 더 놀라운 점은 Expert Advisor가 복잡하지 않고 하나의 내장 지표만 사용하며 Metaquotes Histori Center 데이터보다 Alpari 데이터에서 2-3배 더 나은 결과를 보여줍니다. 그리고 어떤 종류의 최적화를 통해 Alpari의 결과에 더 가까이 다가갈 수조차 없습니다. 이는 일정한 0.1랏으로 거래할 때 MOJ가 약 35, PF = 2.5이고 거래가 때때로 며칠 동안 지속된다는 사실에도 불구하고, 즉 TS는 분명히 pips/scalper가 아닙니다.

파일:
test.zip  278 kb
 

한 가지 더 추측할 수 있습니다.

또한 하나의 MT4 터미널을 다른 DC에 기록할 때 기록에 문제가 있었습니다. 처음에는 모든 것이 괜찮아 보입니다. 그리고 나는 분명히 어딘가에서 무언가를 클릭 / 간과했고 한 DC (동일한 쌍에 대한)의 역사 조각을 통해 다른 DC의 역사로 크롤링하기 시작했습니다. 이유를 모르겠습니다. 또는 일반적으로 조각이 떨어지기 시작했습니다. 결국 모든 것이 너무 뒤섞여서 ... 다른 DC의 동일한 터미널 계정으로 로그인하기로 맹세했습니다.

이제 다른 DC의 사본에 4개의 MT4가 있지만 이 혼란으로 문제를 해결했습니다! 똑같이 해보세요.

PS 나도 알아차렸다. 그런 DC Masterforex가 있습니다.(광고용으로 사용하지 마십시오. 그런데 ...). 그래서 어떤 이유로 내 Expert Advisors는 그의 인용문에서 훌륭한 결과를 보여줍니다. 그리고 Light 또는 Alpari에서는 동일한 매개변수와 품질을 사용하여 다소 나쁩니다.

 
rid :

한 가지 더 추측할 수 있습니다.

또한 하나의 MT4 터미널을 다른 DC에 기록할 때 기록에 문제가 있었습니다. 처음에는 모든 것이 괜찮아 보입니다. 그리고 나는 분명히 어딘가에서 무언가를 클릭 / 간과했고 한 DC (동일한 쌍에 대한)의 역사 조각을 통해 다른 DC의 역사로 크롤링하기 시작했습니다. 이유를 모르겠습니다. 또는 일반적으로 조각이 떨어지기 시작했습니다. 결국 모든 것이 너무 뒤섞여서 ... 다른 DC의 동일한 터미널 계정으로 로그인하기로 맹세했습니다.

이제 다른 DC의 사본에 4개의 MT4가 있지만 이 혼란으로 문제를 해결했습니다! 똑같이 해보세요.


감사합니다. 하지만 이 문제에 대해 알고 있습니다. 위에서 내가 새로 설치하고, 모든 .hst 파일을 설치하고, 삭제하고 , 두 터미널을 각각 Metaquotes에서 발행한 하나의 계정에만 기록하고, 구성 폴더에서 DC의 나머지 부분을 삭제 했기 때문에 혼동이 없을 수 있다고 썼습니다. 다른 사람들의 역사 조각이 나올 곳은 어디에도 없었다. 그리고 이전에 2-3배 더 나은 결과를 얻은 Alpari의 순수한 테스터 터미널은 DC에 어떤 계정에도 로그인한 적이 없습니다. Alpari의 .hst 파일이 로드됩니다.
 
다른 수의 막대 와 시뮬레이션된 틱에 대해 동일한 시뮬레이션 품질이 표시되는 이유는 무엇입니까? 또한 볼륨이 더 큰 다운로드 폴더에 공백이 없는 기록이 있다는 보장은 어디에 있습니까? 테스터가 발행한 시뮬레이션 품질의 정량적 평가를 신뢰할 수 없다는 것이 밝혀졌습니까?
 

당신은 누구도 믿을 수 없습니다!

테스터가 막대의 수(수)에 반응하지 않는다고 생각합니다.

그리고 품질에 대한 평가는 양으로 볼 수 있습니다. 품질 평가는 다음 기준에 따라 수행됩니다. - 테스트된 TF가 내부에 작은 따옴표로 채워진 정도. 완전히 채워지면 = 90%입니다. 완전하지 않으면 품질이 떨어집니다.

그러나 (다운로드할 때) 모든 TF에 대해 설명할 수 없는 따옴표(2006년 9월부터 10월/11월까지)가 떨어졌습니다. 그러나 테스터는 이것을 알아차리지 못하고 = 90% 를 제공합니다. 왜냐하면 모든 tf의 다른 모든 막대. 분으로 가득 차 있습니다.

그리고 막대가 충분하지 않다는 사실 - 테스터는 보지 못합니다.

아마도 당신은 어딘가에 몇 주 또는 두 개의 이야기가 충분하지 않을 것입니다. 따라서 차이.

 

다시 말하지만, 다중 통화 고문에 대한 날카로운 질문이있었습니다. 쌍 중 하나가 시가 모드에서 작동하도록 강제할 필요가 있었습니다! 기사에서 그러한 디자인의 예를 찾았습니다. 단일 버전에 먼저 삽입되었습니다. 모든 것이 효과가 있었습니다.

 int start ()
//ждем открытия нового бара. Если появл. новый бар - проверяем возможность сделки
 { if ( Time [ 0 ] == prevtime ) 
       return ( 0 ) ;
   prevtime = Time [ 0 ] ;

그런 다음 같은 방식으로 다중 통화 어드바이저에 삽입했습니다. 그리고 모든 쌍은 시작 가격으로 획득했습니다. 하지만 모든 것을 가질 필요는 없습니다. 단 하나의 두 번째 쌍이 필요합니다. 다음과 같이 했습니다.

전역에서 선언됨 - static int prevtime = 0;

 ЗАДАЕМ ВНЕШНИЕ ПАРАМЕТРЫ ПО КАЖДОЙ ПАРЕ
 static int prevtime = 0 ;
int init ()
  {
   return ( 0 ) ;
  }
int deinit ()
  {
   return ( 0 ) ;
  }
 
int start ()
  {  
 int Orders = OrdersTotal () ;     //получаем кол-во открытых ордеров
if ( Orders < 3 )                 //если  открытых ордеров <3
  { 
if ( выключатель 1 вкл ) { РАСЧЕТ ИНДЮКОВ И ОТКРЫВАЕМ ПЕРВУЮ ПАРУ } 
if ( выключатель 2 вкл ) 
{
if ( Time [ 0 ] == prevtime ) 
       return ( 0 ) ;
   prevtime = Time [ 0 ] ; 
 
РАСЧЕТ ИНДЮКОВ И ОТКРЫВАЕМ ВТОРУЮ ПАРУ } 
  }
//========================================================================
for ( int x = 0 ; x < OrdersTotal () ; x ++ )                                             {
    if ( OrderSelect ( x , SELECT_BY_POS , MODE_TRADES )) 
{       
if ( UseTrailing 1 ) - ТРЕЙЛИНГ ПЕРВОЙ ПАРЫ
... ... ...
if ( UseTrailing 2 ) - Трейлинг второй пары
}
//======================================================================
   return ( 0 ) ;
  }

또한 두 번째 쌍의 각 티켓 뒤에 다음을 삽입했습니다.

 ticket = OrderSend ( " EURUSD " , OP_BUY , Lots , _ask , 3 , _bid - SL_long * _point ,
                       _ask + TP_long * _point , " M_4 " , MagicEURUSD , 0 , CLR_NONE ) ;
 
                        Sleep ( 30000 ) ;
                       if ( ticket < 0 )   {
                           prevtime = Time [ 1 ] ;
                         }

아무것도 작동하지 않습니다! EA는 모든 틱에서 두 번째 쌍을 계속 작업합니다!

다른 디자인을 시도했습니다. 여기 하나가 있습니다 -

 bool isNewBar = false ;
if ( ExpertBars != Bars ) { ExpertBars = Bars ; isNewBar = true ; }
//-------------------------------------------------------
 
if ( isNewBar ) {

이전에 변수를 설정한 경우:

 int         ExpertBars ;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init ()
  {
ExpertBars = Bars ;
//----------------
   return ( 0 ) ;

하지만 .... 같은 이야기. 처음에 삽입하면 모든 쌍이 시가로 작동합니다. 그러나 한 쌍을 신청하고 싶을 때 - 작동하지 않습니다! 3일째 고생중...

어떤 조언이나 제안을 주시면 감사하겠습니다....

 
rid :
ME에 의해 빨간색으로 강조 표시된 이름은 EA가 부착된 기호를 나타냅니다. Time[] 대신 iTime ()을 사용해 보십시오.