[아카이브!] 어드바이저를 함께 씁니다!!!

 

나는 고문의 공동 노력으로 글을 쓸 것을 제안합니다. 첫째, 많은 흥미로운 질문에 답하는 데 도움이 될 것입니다(프로젝트 마지막에 이에 대해). 둘째, 공동으로 성배를 만들 수 있을 것입니다 :) 마지막으로 초보자에게 흥미로울 것입니다. 프로그래밍 용어) MTS를 단계별로 구축하는 방법을 배우려면 . 나는 가장 단순한 전략을 기초로 삼았습니다... 우리는 고정 이익으로 전날의 고가/저가를 돌파하고 오늘의 고가/저가에 정지하기 위해 개장합니다. 정확히 왜? 네, 첫째, 그러한 시스템은 단일 지표를 사용하지 않고 둘째, 전문적 요소가 2000년부터 사용되었기 때문입니다. 현재까지 1.00 +/-0.03입니다(이전 데이터에 따라 다를 수 있음). 원칙적으로는 50/50이고 마지막으로 전일의 고가/저가를 돌파하는 것은 여전히 시장에 심리적으로 중요하다고 생각합니다. 다른 핵심 레벨을 찾거나 보조 지표 또는 다른 것을 사용할 것을 제안하지만 가장 중요한 것은 아래에 제시된 것보다 더 수익성 있는 Expert Advisor를 얻는 것입니다. 2009년 1월 1일부터 현재까지 테스터가 작성한 차트로, 더 자세한 보고서는 직접 받아보실 수 있습니다. 주요 아이디어는 다른 도구가 시스템에 도움이 될 뿐 시스템에 구축되지 않아야 한다는 것입니다... 즉. 우리는 작동하는 시스템을 기본으로 현대화(개선)하려고 합니다. 여기 내가 얻은 것이 있습니다 ...

이 차량은 절대적으로 "알몸"이지만 잠재력이 있습니다 ...

초보자의 경우 사용을 권장하지 않습니다... 앞으로 5년 동안은 고갈될 것입니다;)

그래서 여기 들판이 쟁기질되지 않았습니다 ...

다음은 코드입니다.

 //+-----------------------------------------------------------------------+
//|                                                     Крокодил ГЕНА.mq4 |
//|                                                         Крокодил ГЕНА |
//+-----------------------------------------------------------------------+
// Описание ТС
// 1. Открытие позиций происходит при пробитии High или Low предыдущего дня
//    SL ставиться на High или Low текущего дня, TP выставляется во внешних переменных, 
//    единственная оговорка не более 1 позиции в день в переменной LastTradeTime 
//    если в ней нет необходимост смело сносите /RomanS/
// 2.
// 3.
// 4.
// 5.
 
   // Внешние переменные
   extern double TakeProfit = 900 ; 
   extern double Lot         = 1 ;     
   extern string SYMBOL     = "EURUSD" ;
  
   // Глобальные переменные
   int LastTradeTime = 0 ;        // Время последней открытой сделки
  
   // Поехали... :)
   int start ( ) 
   {   
     int Ticket ;
   double BID ,
         ASK ,
         SL = 0 ,
         TP = 0 ;                                   
     bool Trade     = true ,
         Open_Bay   = false ,
         Open_Sell = false ;

   // Проверяем можно ли торговать
   if ( Trade = = true ) 
   {
   
   // Критерии открытия позиций
     if ( Bid > iHigh ( SYMBOL , PERIOD_D1 , 1 ) ) Open_Bay = true ; 
     if ( Bid < iLow ( SYMBOL , PERIOD_D1 , 1 ) ) Open_Sell = true ;
        
   // Открытие позиций
       if ( Open_Bay = = true & & OrdersTotal ( ) = = 0 & & TimeDay ( TimeCurrent ( ) ) ! = LastTradeTime )                                            
         {       
         RefreshRates ( ) ; 
         Alert ( "111111111111" ) ;
          ASK = MarketInfo ( SYMBOL , 10 ) ;                                 
          SL = iLow ( SYMBOL , PERIOD_D1 , 0 ) ;
          TP = ASK + TakeProfit * Point ;
           if ( ( ASK - SL ) / Point < MarketInfo ( SYMBOL , 14 ) ) return ;    // проверяем минимальный уровень стопов
           Alert ( "Пробуем открыть Buy " , SYMBOL , " по " , ASK , SL , TP ) ;          
          Ticket = OrderSend ( SYMBOL , OP_BUY , Lot , ASK , 20 , SL , TP ) ;          
           if ( Ticket > 0 )                                                   
             {             
             Alert ( "Открыт ордер Buy " , Ticket ) ;
             LastTradeTime = TimeDay ( TimeCurrent ( ) ) ; // задаем время сделки, чтобы сегодня больше не торговать 
             return ;                                                        
             }          
         }
     if ( Open_Sell = = true & & OrdersTotal ( ) = = 0 & & TimeDay ( TimeCurrent ( ) ) ! = LastTradeTime )                                              
         {       
         RefreshRates ( ) ;                                              
          BID = MarketInfo ( SYMBOL , 9 ) ;
          SL = iHigh ( SYMBOL , PERIOD_D1 , 0 ) ;
          TP = BID - TakeProfit * Point ;
           if ( ( SL - ASK ) / Point < MarketInfo ( SYMBOL , 14 ) ) return ; // проверяем минимальный уровень стопов
          Ticket = OrderSend ( SYMBOL , OP_SELL , Lot , BID , 20 , SL , TP ) ;          
           if ( Ticket > 0 )                                                   
             { 
               Alert ( "Открыт ордер Sell " , Ticket ) ;
              LastTradeTime = TimeDay ( TimeCurrent ( ) ) ;    // задаем время сделки, чтобы сегодня больше не торговать
               return ;                                    
             }          
           return ;                                                        
         }
   
   // Закрытие позиции
   
   // Модификация ордера
   
   }
   return ;        
   }



바로 소스를 일반 형식으로 가져오는 것을 제안하고 싶습니다. 저는 프로가 아닙니다... 저는 "아마추어"이므로 더 작업하는 것이 더 편리합니다. 또는 심지어 .. 새로운 계획. 중요한 것은 조건이







     if ( Bid > iHigh ( SYMBOL , PERIOD_D1 , 1 ) ) Open_Bay = true ; 
     if ( Bid < iLow ( SYMBOL , PERIOD_D1 , 1 ) ) Open_Sell = true ;

이 단계에서 유지됩니다.

응답해주신 모든 분들께 감사드립니다.

파일:
 

그리고 Advisor는 모든 영역에 최적화되어 있으며 최적화된 매개변수가 지속되는 시간

 
ivandurak >> :

그리고 Advisor는 모든 영역에 최적화되어 있으며 최적화된 매개변수가 지속되는 시간

무슨 최적화???

여기 (이 단계에서) prof 동지 만 있습니다. 물론 최적화할 수 있습니다. 물론 많은 것을 몰아낼 수 있지만 의미가 없습니다.

 

예, 여기 밭은 쟁기질을 하지 않은 곳이 아닙니다. 보이는 곳마다 처녀토가 있습니다. 하이로와 모든 종류의 카마릴라 머레이에서 수준을 원하는 대로 조정할 수 있기 때문입니다. hi-lo에 관해서는 이미 이것을 설계했습니다. 괜찮은 시스템의 경우 매우 큰 손실이 발생하기 때문에 분명히 성배 가 아니라고 즉시 말할 수 있습니다. 테이크를 비교한다면 그것들은 작은 것으로 판명될 것이지만, 당신은 그날의 내역에 대해 크게 생각할 수 없습니다. 그것은 단순히 작동하지 않거나 6개월 안에 작동할 것입니다.

따라서 내 충고 - 테이크가 브레이크 아웃 범위보다 큰 좁은 범위의 브레이크 아웃에 브레이크 아웃 시스템을 구축하는 것이 좋습니다. 가장 눈에 띄는 사례는 모닝플랫의 붕괴다. 이러한 의미에서 절대적으로 올바른 결정입니다.

다른 레벨, 로션 및 무당의 탬버린 형태로 추가 방향 없이 낮부터 춤을 추면 할 수 없습니다.

 
sayfuji >> :

예, 여기 밭은 쟁기질을 하지 않은 곳이 아닙니다. 보이는 곳마다 처녀토가 있습니다. 하이로와 모든 종류의 카마릴라 머레이에서 수준을 원하는 대로 조정할 수 있기 때문입니다. hi-lo에 관해서는 이미 이것을 설계했습니다. 괜찮은 시스템의 경우 매우 큰 손실이 발생하기 때문에 분명히 성배가 아니라고 즉시 말할 수 있습니다. 테이크를 비교한다면 그것들은 작은 것으로 판명될 것이지만, 당신은 그날의 내역에 대해 크게 생각할 수 없습니다. 그것은 단순히 작동하지 않거나 6개월 안에 작동할 것입니다.

따라서 내 충고 - 테이크가 브레이크 아웃 범위보다 큰 좁은 범위의 브레이크 아웃에 브레이크 아웃 시스템을 구축하는 것이 좋습니다. 가장 눈에 띄는 사례는 모닝플랫의 붕괴다. 이러한 의미에서 절대적으로 올바른 결정입니다.

다른 레벨, 로션 및 무당의 탬버린 형태로 추가 방향 없이 낮부터 춤을 추면 할 수 없습니다.

고문 변경

PERIOD_H4의 PERIOD_D1이 결과가 더 나을까요???

솔직히 저는 이 MTS로 아무것도 시도하지 않았습니다 ... 단지 관심을 위해 한 것입니다 ...

지난 스레드에서 말했듯이 "A"라는 글자로 잘 알려진 DC의 포럼에서 포럼 사용자는 1 년 동안 전문가를 함께 썼습니다 ...

뭔가를 생각해 봅시다... 우리는 더 많은 프로그래밍 가능성이 있습니다.

 
RomanS писал(а) >>

무슨 최적화???

여기 (이 단계에서) prof 동지 만 있습니다. 최적화할 수 있습니다. 물론, 많은 것을 몰아낼 수 있지만 의미가 없습니다.

이것은 가상 거래의 수행에 대한 나입니다. 실제 거래를 위해 최적의 매개변수가 선택됩니다. 그리고 ischo 우리는 하나의 코드에 두 명의 어드바이저를 작성합니다. 하나는 리바운드를 위해 다른 하나의 고장을 위해 작동합니다.

 

이제 MTS에서 이미 오류가 표시됩니다.

모든 통화 쌍에서 작동하도록 하고 싶었지만 EURUSD에만 해당하는 것으로 나타났습니다.

이제 고칠게...

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
//|                                                     Крокодил ГЕНА.mq4 |
//|                                                         Крокодил ГЕНА |
//+-----------------------------------------------------------------------+
// Описание ТС
// 1. Открытие позиций происходит при пробитии High или Low предыдущего дня
//    SL ставиться на High или Low текущего дня, TP выставляется во внешних переменных, 
//    единственная оговорка не более 1 позиции в день в переменной LastTradeTime 
//    если в ней нет необходимост смело сносите /RomanS/
// 2.
// 3.
// 4.
// 5.
 
  // Внешние переменные
  extern double TakeProfit = 900 ; 
  extern double Lot        = 1 ;    
  extern string SYMBOL     = "EURUSD" ;
  
  // Глобальные переменные
  int LastTradeTime = 0 ;      // Время последней открытой сделки
  
  // Поехали... :)
  int start ( ) 
  {  
     int Ticket ;
  double BID ,
         ASK ,
         SL = 0 ,
         TP = 0 ;                                  
    bool Trade     = true ,
         Open_Bay  = false ,
         Open_Sell = false ;

  // Проверяем можно ли торговать
  if ( Trade = = true ) 
   {
   
   ASK = MarketInfo ( SYMBOL , 10 ) ;
   BID = MarketInfo ( SYMBOL , 9 ) ;
  
  // Критерии открытия позиций
    if ( BID > iHigh ( SYMBOL , PERIOD_D1 , 1 ) ) Open_Bay = true ; 
    if ( BID < iLow ( SYMBOL , PERIOD_D1 , 1 ) ) Open_Sell = true ;
        
  // Открытие позиций
      if ( Open_Bay = = true & & OrdersTotal ( ) = = 0 & & TimeDay ( TimeCurrent ( ) ) ! = LastTradeTime )                                           
        {      
         RefreshRates ( ) ; 
          SL = iLow ( SYMBOL , PERIOD_D1 , 0 ) ;
          TP = ASK + TakeProfit * Point ;
          if ( ( ASK - SL ) / Point < MarketInfo ( SYMBOL , 14 ) ) return ;  // проверяем минимальный уровень стопов
          Alert ( "Пробуем открыть Buy " , SYMBOL , " по " , ASK , SL , TP ) ;         
          Ticket = OrderSend ( SYMBOL , OP_BUY , Lot , ASK , 20 , SL , TP ) ;         
           if ( Ticket > 0 )                                                  
            {            
             Alert ( "Открыт ордер Buy " , Ticket ) ;
             LastTradeTime = TimeDay ( TimeCurrent ( ) ) ; // задаем время сделки, чтобы сегодня больше не торговать 
             return ;                                                       
            }         
        }
     if ( Open_Sell = = true & & OrdersTotal ( ) = = 0 & & TimeDay ( TimeCurrent ( ) ) ! = LastTradeTime )                                             
        {      
         RefreshRates ( ) ;                                             
          SL = iHigh ( SYMBOL , PERIOD_D1 , 0 ) ;
          TP = BID - TakeProfit * Point ;
          if ( ( SL - ASK ) / Point < MarketInfo ( SYMBOL , 14 ) ) return ; // проверяем минимальный уровень стопов
          Ticket = OrderSend ( SYMBOL , OP_SELL , Lot , BID , 20 , SL , TP ) ;         
           if ( Ticket > 0 )                                                  
             { 
              Alert ( "Открыт ордер Sell " , Ticket ) ;
              LastTradeTime = TimeDay ( TimeCurrent ( ) ) ;  // задаем время сделки, чтобы сегодня больше не торговать
              return ;                                   
             }         
          return ;                                                       
        }
   
   // Закрытие позиции
   
   // Модификация ордера
   
   }
  return ;       
  }
파일:
 
sayfuji >> :

다른 레벨, 로션 및 무당의 탬버린 형태로 추가 방향 없이 낮부터 춤을 추면 할 수 없습니다.

그래서 샴페인과 탬버린을 함께 부착해야합니다 ...

싱글은 가능성이 적습니다. 의사 소통이 필요합니다. 그것이 포럼의 목적입니다 ...

 

안녕하세요 RomanS입니다.

아이디어는 훌륭합니다. 나는 외국 포럼의 거래자들이 어떻게 팀으로 단결하고 상호 노력을 통해 전문가 고문을 만드는지 자주 봅니다. 지원할 준비가 되었습니다.

당신의 아이디어에 관해서는, 그것은 고갈되고 있습니다. 그리고 그것은 성배가 아닙니다. 우리가 이미 일하고 있다면 진지하게 일하고 희망을 다르게 설정합시다. 왜 우리가이 모든 것을 시작해야합니까? 제 의견은 이렇습니다. 시스템은 M1 EUR/USD에 대해서만 생성되어야 합니다. 알고리즘의 기본은 추세를 결정하는 방법을 마련하는 것입니다. Tilson의 평활화 알고리즘을 사용하여 ....mmm..... 이동 평균 을 가정해 보겠습니다. 다음으로 입구를 보겠습니다. 두 개의 빠른 마샤의 교차점과 폐쇄를 취할 수 있습니다. 더 많은 종과 휘파람을 묶을 수 있습니다. 제안 :-) 플러스, 자신의 설정에 Martin을 포함할 수 있는 기능으로 MM을 확인하십시오.

일반적으로 이것에서 춤을 추자. 입/퇴장 아이디어를 제출하십시오. 같이 합시다. 그러나 D1에서 높고 낮은 수준을 돌파하는 것은 드레인입니다. sayfuji는 모든 것을 올바르게 썼습니다.

 

그리고 한 지점 https://forum.mql4.com/ru/ 23917 에 작성되지 않은 것은 무엇입니까?

일반적으로 그들은 일반적으로 일반적으로 흥미로운 아이디어를 중심으로 결합하고 장르의 위기 ...

 
Alex5757000 >> :

안녕하세요 RomanS입니다.

아이디어는 훌륭합니다. 나는 외국 포럼의 거래자들이 어떻게 팀으로 단결하고 상호 노력을 통해 전문가 고문을 만드는지 자주 봅니다. 지원할 준비가 되었습니다.

당신의 아이디어에 관해서는, 그것은 고갈되고 있습니다. 그리고 그것은 성배가 아닙니다. 우리가 이미 일하고 있다면 진지하게 일하고 희망을 다르게 설정합시다. 왜 우리가이 모든 것을 시작해야합니까? 제 의견은 이렇습니다. 시스템은 M1 EUR/USD에 대해서만 생성되어야 합니다. 알고리즘의 기본은 추세를 결정하는 방법을 마련하는 것입니다. Tilson의 평활화 알고리즘을 사용하여 ....mmm..... 이동 평균을 가정해 보겠습니다. 다음으로 입구를 살펴보겠습니다. 두 개의 빠른 마샤의 교차점과 폐쇄를 취할 수 있습니다. 더 많은 종과 휘파람을 묶을 수 있습니다. 제안 :-) 플러스, 자신의 설정에 Martin을 포함할 수 있는 기능으로 MM을 확인하십시오.

일반적으로 이것에서 춤을 추자. 입/퇴장 아이디어를 제출하십시오. 같이 합시다. 그러나 D1에서 높고 낮은 수준을 돌파하는 것은 드레인입니다. sayfuji는 모든 것을 올바르게 썼습니다.

이것이 성배는 아니지만(시간이 말해줄 것입니다) 그것은 확실합니다!

(장기적으로) 배수되지 않는다는 사실은 테스터에서 시작할 때 볼 수 있지만 (50/50은 때때로 작동하고 때로는 작동하지 않음) 배수되지 않습니다 ... prof.factor는 약 1.00

M1에 관해서는 당연히 흥미롭지만, 전문가들이 관심을 가질 가능성은 거의 없으며, 게다가 당일치기가 아닌 시스템을 제안했는데... M5에서 테스트했지만 일반적으로 차이가 없습니다.

MA-shek의 경우 일반적으로 단계가 통과했습니다 ...

알고리즘의 기본은 추세를 결정하는 방법을 마련하는 것입니다.

추세를 판단하는 방법을 제시하셨으니 깔아보세요.... 뭐가 문제인가요??? 우리는 논의 할 것이다...

Tilson의 평활화 알고리즘을 사용하여 이동 평균을 ....mmm...이라고 가정해 보겠습니다.

문제 없습니다... 몇 줄의 코드와 발리를 붙여넣을 수 있습니다... 교수 계수가 2.0보다 큽니다.

문제의 사실은 내가 가정하지 않고 할 것을 제안하고, 어떻게 하는지 모르는 사람들은 .. 다른 사람들이 어떻게 하는지를 배운다는 것입니다.

개인적으로 나는 (아마추어로서) 프로에게 경험을 쌓고 싶습니다 ...