초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1317

 
Vladimir Karputov :

오류를 살펴보겠습니다.

1. 항상 차트 기호를 명시적으로 설정합니다 (예, 설명서에 의존할 수 있지만 항상 명시적으로 설정하는 것이 좋습니다)

2. 문자열은 의미가 없습니다 - preff+"hhh"는 결코 Symbol()과 같지 않기 때문에


추가됨: 이 접근 방식을 사용하는 것이 좋습니다. 차트에는 항상 하나의 선이 있습니다. 차트를 전환할 때 선의 가격만 변경하면 됩니다.

명시적으로 경고를 표시하는 경우: '문자열'에서 '숫자'로의 암시적 변환

문제의 본질은 라인이 생성된 위치에 표시되지 않는다는 것입니다.

255의 가격으로 악기에 생성하면 현재 가격이 310인 다른 악기를 로드할 때 왜 255의 가격으로 표시됩니까?

라인을 저장하는 방법과 생성된 위치를 표시하는 방법을 알려주세요.
 
serg_V777 :

명시적으로 경고를 표시하는 경우: '문자열'에서 '숫자'로의 암시적 변환

문제의 본질은 라인이 생성된 위치에 표시되지 않는다는 것입니다.

255의 가격으로 악기에 생성하면 현재 가격이 310인 다른 악기를 로드할 때 왜 255의 가격으로 표시됩니까?

라인을 저장하는 방법과 생성된 위치를 표시하는 방법을 알려주세요.

당신은 코드 조각을 보여주었습니다 - 당신에게 당신의 조각을 주었습니다. 변수를 선언하면 오류가 발생하지 않습니다.

나는 당신의 라인 논리를 이해하지 못합니다. 당신의 행동을 더 자세히 설명하려고 노력하십시오. 그리고 가장 중요한 것은 그것을 하는 이유입니다.


귀하의 코드에서 ChartSymbol 이 왜 그런지 전혀 이해하지 못합니다.

 
Vladimir Karputov :

당신은 코드 조각을 보여주었습니다 - 당신에게 당신의 조각을 주었습니다. 변수를 선언하면 오류가 발생하지 않습니다.

나는 당신의 라인 논리를 이해하지 못합니다. 당신의 행동을 더 자세히 설명하려고 노력하십시오. 그리고 가장 중요한 것은 그것을 하는 이유입니다.


귀하의 코드에서 ChartSymbol 이 왜 그런지 전혀 이해하지 못합니다.

 void OnChartEvent ( const int id,           // идентификатор события   
                   const long & lparam,     // параметр события типа long 
                   const double & dparam,   // параметр события типа double 
                   const string & sparam) { // параметр события типа string 
 
 
  preff= ChartSymbol ( NULL );
  price= SymbolInfoDouble ( Symbol (), SYMBOL_BIDLOW ); 
 if (id == CHARTEVENT_OBJECT_CLICK && sparam == "dz_draw" ) // Нажатие кнопки   
  {   
   ObjectCreate ( 0 ,preff+ "hhh" , OBJ_HLINE , 0 , 0 ,price) ;    
 ObjectSetInteger ( 0 ,preff+ "hhh" , OBJPROP_COLOR , clrBlack ); 
   ObjectSetInteger ( 0 ,preff+ "hhh" , OBJPROP_STYLE , 0 ); 
   ObjectSetInteger ( 0 ,preff+ "hhh" , OBJPROP_WIDTH , 3 ); 
   ObjectSetInteger ( 0 ,preff+ "hhh" , OBJPROP_BACK , false ); 
   ObjectSetInteger ( 0 ,preff+ "hhh" , OBJPROP_SELECTABLE , true ); 
   ObjectSetInteger ( 0 ,preff+ "hhh" , OBJPROP_SELECTED , true ); 
   ObjectSetInteger ( 0 , "dz_draw"    , OBJPROP_STATE , false );
   }
}

그래서 나는 Gazp 차트 에서 277의 가격으로 선을 만듭니다.

같은 창에서 Sber로 변경하면 Gazp에 277로 생성된 라인이 표시됩니다.

Sber에서 310 라인을 생성하면 차트에 두 개의 라인이 표시됩니다. 하나는 정확하고(필요한 곳에 생성됨) 두 번째 라인은 올바르지 않습니다. 이 차트가 아닙니다....

악기를 바꾸고 200~400 사이의 가격대로 선을 만들고 Gazp 차트로 돌아가면 사람과 말이 저를 위해 섞입니다 :),

그러나 우리는 그것이 필요합니다. 필요한 위치와 필요한 양만큼 생성된 유일한 것 (음, 아마도 몇 개의 수평선) 이 필요합니다.

 
serg_V777 :

그래서 나는 Gazp 차트 에서 277의 가격으로 선을 만듭니다.

같은 창에서 Sber로 변경하면 Gazp에서 277로 생성한 줄이 표시됩니다.

Sber에서도 310 라인을 생성하면 차트에 두 개의 라인이 표시됩니다. 하나는 정확하고(필요한 위치에 필요한 항목에 따라 생성됨) 두 번째 라인은 올바르지 않습니다. 이 차트가 아닌 ....

악기를 바꾸고 200~400 사이의 가격대로 선을 만들고 Gazp 차트로 돌아가면 사람과 말이 저를 위해 섞입니다 :),

그러나 우리는 그것이 필요합니다. 필요한 위치와 필요한 양만큼 생성된 유일한 것 (음, 아마도 몇 개의 수평선) 이 필요합니다.

 ChartSymbol

도움말을 읽어보세요. 도움을 받은 후에는 이 연산자를 사용하지 마십시오. 필요하지 않습니다.


이러한 알고리즘이 필요합니다. 각 기호에 대해 가격을 저장해야 합니다. 가격은 터미널의 전역 변수에 저장됩니다(전역 변수의 이름은 기호의 이름일 뿐입니다). 다음으로 'CHARTEVENT_OBJECT_CHANGE' 및 ' CHARTEVENT_OBJECT_DRAG '를 제공하고 전역 변수의 가격을 다시 저장해야 합니다.

여전히 많은 뉘앙스를 해결해야합니다. 예를 들어 전역 변수가 있고 차트에 선이 없습니다 ...

 
User_mt5 :
매우 감사합니다! 당신은 정말로 나를 도왔습니다!

그리고 물론, 이 기능은 기술 목록의 중간에 있지 않다면 어디에 있을 수 있습니다. 지표..)

그리고 어떤 식 으로든 yernichestvo 없이?

문서를 전혀 읽지 않은 것 같군요... 하지만 당신은 우주의 배꼽인 것처럼 프롬프트에 대답합니다. ... 문맹과 무력한 배꼽 ...

 
Vitaly Muzichenko :

고맙습니다!

어떤 식 으로든 표준 수단으로 밝혀졌습니다.

어떤 식으로든 시스템 DLL을 사용하지 않고.

이 목적을 위해 전체 라이브러리를 게시했습니다 )

5-ki는 별도로.
CDir (MT4) - класс для получения оглавления каталога
CDir (MT4) - класс для получения оглавления каталога
  • www.mql5.com
Класс CDir предназначен для получения сведений о файлах и папках вне "песочницы" MQL4 подобно команде MS-DOS Dir. Задействован вызов системных DLL, поэтому следует разрешить их использование.
 
Vladimir Karputov :

도움말을 읽어보세요. 도움을 받은 후에는 이 연산자를 사용하지 마십시오. 필요하지 않습니다.


이러한 알고리즘이 필요합니다. 각 기호에 대해 가격을 저장해야 합니다. 가격은 터미널의 전역 변수에 저장됩니다(전역 변수의 이름은 기호의 이름일 뿐입니다). 다음으로 'CHARTEVENT_OBJECT_CHANGE' 및 ' CHARTEVENT_OBJECT_DRAG '를 제공하고 전역 변수의 가격을 다시 저장해야 합니다.

여전히 많은 뉘앙스를 해결해야합니다. 예를 들어 전역 변수가 있고 차트에 선이 없습니다 ...

알고리즘에 감사드립니다.

문제는 왜 그러한 코드로 선이 위치하고 변색 되었습니까?,

 if (preff+ "hhh" == ChartSymbol ( 0 ) ){
ObjectSetInteger ( 0 ,preff+ "hhh" , OBJPROP_COLOR , clrNONE ); }

그리고 당신이 어두운 숲으로 가기 위해 필요한 일을 하십시오 ....

 
Mikhail Dovbakh :

어떤 식으로든 시스템 DLL을 사용하지 않고.

이 목적을 위해 전체 라이브러리를 게시했습니다 )

5-ki는 별도로.

좋아, 여기에 내가 필요한 것이 있습니다!

 
Сергей Таболин :

그리고 어떤 식 으로든 yernichestvo 없이?

문서를 전혀 읽지 않은 것 같군요... 하지만 당신은 우주의 배꼽인 것처럼 프롬프트에 대답합니다. ... 문맹과 무력한 배꼽 ...

당신은 무례하지 않고 유용한 일을 할 것입니다, 골리!

그리고 귀찮게 대답하고 반응하지 마십시오! 아아, 당신의 의견은 나에게 흥미롭지 않습니다!)

 

질문을 복제하겠습니다. 그렇지 않으면 그들이 눈치채지 못했을 수 있습니다.))) 이 모든 방법을 사용하려면 어느 클래스에서 클래스를 상속해야 하는지 알려주세요

자신의 클래스 내부에 객체를 생성 하지 않고 자체 클래스 내부의 거래 클래스?



사유: