찻주전자의 질문 - 페이지 6

 
pusheax :

실제 계정 의 일부 DC는 "."와 같은 모든 종류의 접두사를 기호 이름에 할당합니다. 또는 "FXF".

이 접두사를 어떻게 대체할 수 있습니까?

나는 이것을 좋아했다:

#define DEF_SPEC "FXF"

string SymbolsTrade[] = {"AUDCAD"DEF_SPEC ... - 작동하지 않음

string SymbolsTrade[] = {"AUDCAD"+DEF_SPEC ... - 그것도 작동하지 않습니다

결과적으로 원하는 AUDCADFXF 대신 FXF만 얻습니다.

구현 방법을 알려주지 않습니까?


첫째, 배열을 열거형으로 채우는 것은 전역 범위에서만 가능하므로 +가 없고 문자열 상수만 있습니다.

둘째, 정적 배열이 할당되어 있지 않고 동적 배열을 열거형으로 채울 수 없습니다.

가장 쉬운 방법은 동적 배열을 배포하고 채우는 함수를 작성하는 것입니다. 그 안에서 모든 작업을 수행하고 상수로 정의를 추가하는 등의 작업을 수행할 수 있습니다.

 
Urain :

첫째, 배열을 열거형으로 채우는 것은 전역 범위에서만 가능하므로 +가 없고 문자열 상수만 있습니다.

둘째, 정적 배열이 할당되어 있지 않고 동적 배열을 열거형으로 채울 수 없습니다.

가장 쉬운 방법은 동적 배열 을 배포하고 채우는 함수를 작성하는 것입니다. 그 안에서 모든 작업을 수행하고 상수로 정의를 추가하는 등의 작업을 수행할 수 있습니다.

DC/브로커에 존재하는 모든 통화 쌍을 살펴보고 그 안에 있는 구성 통화를 분석할 수도 있습니다.

그런 다음 접두사 추가를 고려하여 통화 쌍의 동적 배열을 만들 수 있습니다.

내가 기억하는 한 이것은 MT5의 보편적인 옵션 중 하나입니다.

 
Urain :

첫째, 배열을 열거형으로 채우는 것은 전역 범위에서만 가능하므로 +가 없고 문자열 상수만 있습니다.

둘째, 정적 배열이 할당되어 있지 않고 동적 배열을 열거형으로 채울 수 없습니다.

가장 쉬운 방법은 동적 배열 을 배포하고 채우는 함수를 작성하는 것입니다. 그 안에서 모든 작업을 수행하고 상수로 정의를 추가하는 등의 작업을 수행할 수 있습니다.

간단히 말해서, 내가 올바르게 이해했다면 전역 범위에서 복합 상수에서 정적 문자열 배열을 만드는 것이 불가능하지 않습니까?

 
uncleVic :

소스에서 코드를 볼 수 있습니다. 발산을 검색하는 데 두 가지 방법이 사용됩니다.

1. 메서드 bool CSignalMACD::ExtState(int ind) - 검색할 데이터를 준비합니다.

2. 메소드 bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start) - 지정된 매개변수로 시장 모델을 검색합니다.

도움이된다면 다음은 러시아어로 된 방법에 대한 설명입니다.

부울 메서드 CSignalMACD::ExtState(int ind)의 경우

bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start) 메서드의 경우

또한 질문이 있습니다. MACD 신호를 사용하여 어드바이저를 생성 할 때 분기가 있는 옵션을 정확히 지정하는 방법은 무엇입니까? 핸드북은 여러 신호 옵션을 제공합니다.
 
strelec :
또한 질문이 있습니다. MACD 신호를 사용하여 어드바이저를 생성 할 때 분기가 있는 옵션을 정확히 지정하는 방법은 무엇입니까? 핸드북은 여러 신호 옵션을 제공합니다.

모두가 이미 알고 있듯이 모든 신호 는 여러 시장 패턴을 감지할 수 있습니다. 패턴 사용을 제어하려면 PatternsUsage(int value) 메서드를 호출합니다. 여기서 value는 패턴 사용 비트맵입니다(비트 번호와 패턴 번호는 동일함). 비트는 1 - 모델이 사용됨, 비트는 0 - 모델이 사용되지 않음(기본적으로 모든 비트는 1). 모델 번호는 비트와 마찬가지로 0에서 시작합니다.

따라서 분기만 사용하려면 PatternsUsage(16);를 사용해야 합니다. 왜 16인가? 이진수 10000b의 16입니다(즉, 비트 4는 1이고 나머지 비트는 0). 그리고 바로 모델 4 "오실레이터와 가격의 발산" .

유일한 "하지만", "핸들"을 수행해야 합니다.

마법사가 완료되면 소스가 편집기에서 열립니다. 다음과 같이 인터넷을 검색하십시오.

 //--- Creating filter CSignalMACD
   CSignalMACD *filter0= new CSignalMACD;
   if (filter0== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating filter0" );
      ExtExpert.Deinit();
       return (- 3 );
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PeriodFast(Signal_MACD_PeriodFast);
   filter0.PeriodSlow(Signal_MACD_PeriodSlow);
   filter0.PeriodSignal(Signal_MACD_PeriodSignal);
   filter0.Applied(Signal_MACD_Applied);
   filter0.Weight(Signal_MACD_Weight);

그리고 한줄 추가

filter0.PatternsUsage(16);

그것은 밝혀질 것입니다 :

 //--- Creating filter CSignalMACD
   CSignalMACD *filter0= new CSignalMACD;
   if (filter0== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating filter0" );
      ExtExpert.Deinit();
       return (- 3 );
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PatternsUsage( 16 );
   filter0.PeriodFast(Signal_MACD_PeriodFast);
   filter0.PeriodSlow(Signal_MACD_PeriodSlow);
   filter0.PeriodSignal(Signal_MACD_PeriodSignal);
   filter0.Applied(Signal_MACD_Applied);
   filter0.Weight(Signal_MACD_Weight);

지금은 여기까지입니다. 질문이 있으시면 연락주십시오.

 
uncleVic :

모두가 이미 알고 있듯이 모든 신호 는 여러 시장 패턴을 감지할 수 있습니다. 패턴 사용을 제어하려면 PatternsUsage(int value) 메서드를 호출합니다. 여기서 value는 패턴 사용 비트맵입니다(비트 번호와 패턴 번호는 동일함). 비트는 1 - 모델이 사용됨, 비트는 0 - 모델이 사용되지 않음(기본적으로 모든 비트는 1). 모델 번호는 비트와 마찬가지로 0에서 시작합니다.

따라서 분기만 사용하려면 PatternsUsage(16);를 사용해야 합니다. 왜 16인가? 이진수 10000b의 16입니다(즉, 비트 4는 1이고 나머지 비트는 0). 그리고 바로 모델 4 "오실레이터와 가격의 발산" .

유일한 "하지만", "핸들"을 수행해야 합니다.

마법사가 완료되면 소스가 편집기에서 열립니다. 다음과 같이 인터넷을 검색하십시오.

그리고 한줄 추가

filter0.PatternsUsage(16);

그것은 밝혀질 것입니다 :

지금은 여기까지입니다. 질문이 있으시면 연락주십시오.

고맙습니다. 일어난. 그리고 즉시 더 많은 질문이 생겼습니다. 이 발산 변형에서 인접한 상단(하단) 사이의 시간 간격이 고려됩니까?
 
strelec :
고맙습니다. 일어난. 그리고 즉시 더 많은 질문이 생겼습니다. 이 발산 변형에서 인접한 상단(하단) 사이의 시간 간격이 고려됩니까?
간격이 구문 분석되지 않습니다.
 

사건을 처리하려고 노력하는 전문가가 있습니다.

 string event [ 10 ]=
{
"CHARTEVENT_KEYDOWN - событие нажатия клавиатуры, когда окно графика находится в фокусе" ,
"CHARTEVENT_OBJECT_CREATE — событие создания графического объекта" ,
"CHARTEVENT_OBJECT_CHANGE — событие изменения свойств объекта через диалог свойств" ,
"CHARTEVENT_OBJECT_DELETE — событие удаления графического объекта" ,
"CHARTEVENT_CLICK — cобытие щелчка мыши графике" ,
"CHARTEVENT_OBJECT_CLICK — событие щелчка мыши на графическом объекте, принадлежащего графику" ,
"CHARTEVENT_OBJECT_DRAG — событие перемещения графического объекта при помощи мыши" ,
"CHARTEVENT_OBJECT_ENDEDIT — событие окончания редактирования текста в поле ввода графического объекта LabelEdit" ,
"CHARTEVENT_CHART_CHANGE  — событие изменения графика" ,
"CHARTEVENT_CUSTOM+n — идентификатор пользовательского события, где n находится в диапазоне от 0 до 65535"
};
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
  {
   Print( "id=(" ,id, ") -- " , event [id], "  lparam=" ,lparam, "   dparam=" ,dparam, "   sparam=" , sparam);
  }
//+------------------------------------------------------------------+

액션에 해당하지 않는 이벤트를 받습니다.

차트 클릭과 버튼 누름과 정확히 일치

논쟁의 여지가 있는 이벤트 id=9( CHARTEVENT_CUSTOM) 는 예를 들어 차트가 이동할 때 생성되며 스트림에는 약 10개의 동일한 이벤트가 있습니다 .

CHARTEVENT_OBJECT_ENDEDIT 이벤트를 확인하지 않았습니다.

나머지는 명확하지 않습니다. 설명이 이벤트 번호와 일치하지 않거나, 수동으로 개체를 생성할 때 개체 생성과 같은 이벤트가 잘못 생성됩니다.

일반적으로 도움을 요청합니다.

 
kPVT :

사건을 처리하려고 노력하는 전문가가 있습니다.

액션에 해당하지 않는 이벤트를 받습니다.

차트 클릭과 버튼 누름과 정확히 일치

논쟁의 여지가 있는 이벤트 id=9( CHARTEVENT_CUSTOM) 는 예를 들어 차트가 이동할 때 생성되며 스트림에는 약 10개의 동일한 이벤트가 있습니다 .

CHARTEVENT_OBJECT_ENDEDIT 이벤트를 확인하지 않았습니다.

나머지는 명확하지 않습니다. 설명이 이벤트 번호와 일치하지 않거나, 수동으로 개체를 생성할 때 개체 생성과 같은 이벤트가 잘못 생성됩니다.

일반적으로 도움을 요청합니다.

처음에는 이미 할당된 숫자 상수 CHARTEVENT_XXXXXXXX에 숫자 상수를 할당합니다...

문제는 이것입니다:

event[id]

필요:

 //--- нажатие мышкой на графическом объекте
   if (id== CHARTEVENT_OBJECT_CLICK )
     {
       Print ( "Нажатие кнопки мышки на объекте с именем '" +sparam+ "'" );
     }
//--- нажатие кнопки на клавиатуре
   if (id== CHARTEVENT_KEYDOWN )
     {
 
kPVT :

나머지는 명확하지 않습니다. 설명이 이벤트 번호와 일치하지 않거나 개체를 수동으로 생성할 때 개체 생성과 같은 이벤트가 잘못 생성됩니다.

불행히도 귀하의 질문은 명확하지 않습니다. 정확히 작동하지 않는 것은 무엇입니까?