모스 식 부호 - 페이지 4

 

숫자 패턴의 길이를 지정하기 위해 " 패턴 의 길이 " 매개변수를 생략했습니다(이 매개변수는 최적화 모드 에서만 사용됨).

 #property version    "1.003"
#property description "Bull candle - \"1\", bear candle - \"0\""
//---
#include <Trade\Trade.mqh>
CTrade         m_trade;                       // trading object
//+------------------------------------------------------------------+
//| Enum pattern type: numerical or string                           |
//+------------------------------------------------------------------+
enum ENUM_PATTERN_TYPE
  {
   PATTERN_TYPE_NUMERICAL= 0 ,   // numerical
   PATTERN_TYPE_STRING= 1 ,     // string 
  };
//---
input ENUM_PATTERN_TYPE    InpPatternType          = PATTERN_TYPE_STRING;   // pattern type
input uchar                 InpLenNumerical         = 3 ;                     // length of the pattern (use only if pattern "numerical")
input string                InpsMorseCode           = "101" ;                 // string Morse code (max 5 characters)
input ENUM_POSITION_TYPE    InpPosType              = POSITION_TYPE_BUY ;     // posinion type
input double                InpLot                  = 0.1 ;                   // lot
sinput ulong                m_magic                 = 88430400 ;             // magic number
input ulong                 m_slippage              = 30 ;                   // slippage
//---
string sExtMorseCode= "" ;
int max_string_len= 5 ;         // limitation of the length of the pattern "string"
int i_morse_code= 0 ;           // int Morse code (use only if pattern type=numerical)
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   if (InpPatternType==PATTERN_TYPE_STRING)
     {
       //--- check start mode
       if ( MQLInfoInteger ( MQL_OPTIMIZATION ))
         return ( INIT_PARAMETERS_INCORRECT );
       //--- info print
       Print ( "The type of the pattern \"string\" is set - the parameters \"pattern length\" and \"int Morse code\" are ignored" );

      sExtMorseCode=InpsMorseCode;

그리고 즉시 보호 - 패턴의 문자열 유형이 최적화 모드에서 선택된 경우 - 어드바이저는 "INIT_PARAMETERS_INCORRECT"를 반환합니다.

 
Vitalii Ananev :


나중에 다시 실행하지 않도록 한 번에 모든 것을 예측해야 합니다.

....

다시 말하지만, "저녁 별" 패턴으로 돌아가면 강세-작은 촛대-약세 및 강세-약세 흡수로 간주될 수 있습니다. 즉, 강세 양초와 약세 흡수로 구성된 복합 패턴이 나타납니다. 패턴의 3개의 양초가 모두 요약되면 다시 핀 막대가 나타납니다.



내 5 센트를 넣어 보자.

이러한 작업이 설정되지 않았고 모든 것을 한 번에 예측하는 것은 불가능합니다. 이 경우 주요 개념으로 생각되었던 원래 개념이 손실됩니다. 사용자가 강세 및 약세 양초를 연속적으로 만들고 프로그램이 이러한 시퀀스와 거래를 검색합니다. 왜 양초를 하나의 패턴으로 합산합니까?

 
Pyxis :


내 5 센트를 넣어 보자.

이러한 작업이 설정되지 않았고 모든 것을 한 번에 예측하는 것은 불가능합니다. 이 경우 주요 개념으로 생각되었던 원래 개념이 손실됩니다. 사용자가 강세 및 약세 양초를 연속적으로 만들고 프로그램이 이러한 시퀀스와 거래를 검색합니다. 왜 양초를 하나의 패턴으로 합산합니까?


요약하는 이유. 예를 들어, 모델의 단순성을 위해. 그리고 일반적으로 예를 들어 설명했습니다.

왜 불가능합니까? 일본 촛대 의 모든 일반적인 조합은 어떤 방식으로든 인코딩될 수 있습니다. 또 다른 것은 첫 번째 비트(위에서 이에 대해 썼습니다)가 충분하지 않고 최소 2비트를 사용해야 하며 패턴 모델을 요약(단순화)하지 않으면 충분하지 않다는 것입니다.

 

모스 코드 버전 "1.003": 패턴의 문자열 설명을 수동으로 설정하고 테스터에서 단일 패스를 실행할 수도 있습니다.

파일:
Morse_code.mq5  15 kb
 
Vladimir Karputov :


이 프로그램은 프로그래머가 아닌 일반 사용자가 사용합니다(위에서 두 번 이상 언급했습니다). 그리고 그에게 "101"과 "5"는 두 개의 다른 숫자인 반면 "5"에는 정보가 없습니다. 양초의 상대적 위치에 관한 모든 것이 전달되지만 "101"은 분명히 "강세, 약세, 강세"를 나타냅니다.

이해했다. 글쎄, 그럼 - 문자열과 파서. 제 생각에는 가장 유연한 옵션입니다.
 
George Merts :

내가 잘 이해하지 못하는 것 - 프로그래머나 빨갱이가 있습니까?

어딘가로 옮기기 위해 거기에 무엇을 위해???

코드 101이 필요하면 이것은 일반적인 값 5입니다. 그게 전부입니다. 어떤 문제들 ? 정신적으로 십진수를 이진수로 변환 ???

나는 비슷한 실험을 수행했지만 내 양초에만 여전히 작은 것에서 큰 것까지 네 가지 크기가있었습니다. 따라서 양초의 8 가지 변형. 따라서 3비트입니다. 패턴에 숫자(ulong)를 쓰십시오. 그리드가 20개 바 패턴보다 큽니다.

제 생각에는 문제가 너무 멀리 있습니다.

먼저 이해한 다음 비판합니다. 다음은 생각해 볼 과제입니다.

다음과 같은 촛대 조합을 int로 인코딩합니다.

  • 1011;
  • 01011;
  • 001011

힌트: 이들은 서로 다른 조합입니다.

조지 머츠 :
이해했다. 글쎄, 그럼 - 문자열과 파서. 제 생각에는 가장 유연한 옵션입니다.
다시 한 번: optimizer_does not_optimize_string_parameters . 옵티마이저 없이 수익성 있는 패턴의 조합을 어떻게 찾겠습니까?
 
Vasiliy Sokolov :
다시 한 번: optimizer_does not_optimize_string_parameters . 옵티마이저 없이 수익성 있는 패턴의 조합을 어떻게 찾겠습니까?

옵티마이저가 필요한 경우 사용자는 숫자를 이진 코드로 변환할 수 있을 만큼 충분히 "익숙해야" 합니다(적어도 일반 Windows 계산기 사용).

친구 여러분, 논란의 여지가 있는 요청이 있습니다. 사용자가 2진 코드를 10진수로 변환하기 위해 계산기를 사용할 수 없는 오크라면 어떤 경우에도 최적화를 마스터하지 못할 것입니다. 최대 - 최상의 값을 찾기 위해 한 번 실행됩니다.

사용자가 최적화를 사용할 만큼 충분히 고급인 경우 입력 매개변수를 일반적인 unsigned long으로 인코딩하는 것이 매우 합리적입니다.

 
Vasiliy Sokolov :

먼저 이해한 다음 비판합니다. 다음은 생각해 볼 과제입니다.

다음과 같은 촛대 조합을 int로 인코딩합니다.

  • 1011;
  • 01011;
  • 001011

힌트: 이들은 서로 다른 조합입니다.

또한 길이가 다양합니다. 첫 번째 조합 - 4개의 6자리 숫자가 포함됩니다.

두 번째 조합 - 두 개의 6자리 숫자가 포함됩니다.

따라서 최적화할 때 64개의 6자리 조합만 취하면 됩니다.

또한 후자는 처음 두 옵션의 하위 집합이고 끝에서 두 번째 옵션은 첫 번째 옵션의 하위 집합입니다.

즉, 마지막 조합 등록 시 두 번째 조합과 첫 번째 조합을 동시에 인식해야 합니다. 제 생각에는 이것은 분명히 잘못된 요청입니다.

 
그리고 가장 수익성이 높은 시퀀스를 찾는 이벤트의 목적은 정확히 무엇입니까? 이를 위해 로봇이나 테스터가 필요하지 않습니다. 표시기로 충분하며 시퀀스의 길이와 위치 닫기 규칙이 설정됩니다(TP 또는 반대 신호 또는 다른 곳에서). 표시기는 주어진 시퀀스 길이 및 주어진 히스토리 깊이 내의 모든 옵션을 열거하고 결과(드로다운 포함)를 정렬하고 지정한 위치에 인쇄합니다. 그리고 실제로, 문제는 멀리 있는 것처럼 보입니다. 글쎄, 이것이 0101에 운세를 말하는 것과 같은 장난감이 아니라면 사용자를 데려가십시오.
 
George Merts :

따라서 최적화할 때 64개의 6자리 조합만 취하면 됩니다.

질문: 64비트에서 요구되는 조합과 일치하는 조합이 시장에 나타날 확률은 얼마입니까? 답: (1/2^64)*BarsCount. 저것들. 100%에 가까운 확률로 이러한 조합을 찾을 수 없습니다. 저것들. 분명히 int 또는 long 숫자만으로는 패턴을 완전히 설명할 수 없으므로 패턴의 길이를 나타내는 추가 매개변수가 필요합니다.

그런 작은 단계에서 논쟁을 벌이게 되면 곧 두 번째 페이지에서 내가 말한 내용에 도달하게 될 것입니다.

사유: