초보자의 질문 MQL4 MT4 MetaTrader 4 - 페이지 237

 
Sergey Likho :

MT5 표시기는 두 가지 색상 으로 선을 그립니다 .

라인 값은 하나의 버퍼에 있습니다.

표시기에서 값을 요청할 때 선의 색상을 어떻게 든 결정할 수 있습니까?

할 수 있다. 선 색상은 색상 버퍼에 저장됩니다. 행이 하나만 있는 경우 값 버퍼는 0이고 색상 버퍼는 1입니다. 따라서 CopyBuffer에서 두 번째 매개변수를 1로 설정합니다.
 
Ventura :

프로그래밍 방식으로 매개변수 창을 표시할 수 없는 경우 매개변수를 어떻게든 초기화할 수 있는지 알려주십시오.

 input double BuyStop= 100 ;
double MyBuyStop=BuyStop;


.........
if (something) MyBuyStop= 200 ;
 
Евгений :

당신은 무엇을 조언합니까?

첫째, 주문은 기호와 마법으로 필터링되어야 합니다. 주문이 2개 남았습니다. 상태에 따라 제거할 항목을 선택합니다. 삭제, 하나 남음, 손절매를 변경합니다.

 
Aleksei Stepanenko :
 input double BuyStop= 100 ;
double MyBuyStop=BuyStop;


.........
if (something) MyBuyStop= 200 ;

Alexey, 매개변수 창이 뜨기 전에 매개변수 계산 함수를 호출하는 방법을 알려달라고 했습니다.

질문이 열려 있습니다. 매개변수 창을 PROGRAMME로 호출할 수 있습니까? 그렇지 않은 경우 매개변수 창이 표시되기 전에 기능에서 매개변수를 초기화할 수 있습니까?

다음과 같이 하고 싶습니다.

이중 BuyStop 입력 = GetMyBuyStop();

그러나 오른쪽에는 상수만 있을 수 있다는 오류가 발생합니다(

 
Ventura :

Alexey, 매개변수 창이 뜨기 전에 매개변수 계산 함수를 호출하는 방법을 알려달라고 했습니다.

질문이 열려 있습니다. 매개변수 창을 PROGRAMME로 호출할 수 있습니까? 그렇지 않은 경우 매개변수 창이 표시되기 전에 함수에서 매개변수를 초기화할 수 있습니까?

다음과 같이 하고 싶습니다.

이중 BuyStop 입력 = GetMyBuyStop();

그러나 오른쪽에는 상수만 있을 수 있다는 오류가 발생합니다(

매개변수 창이 나타나기 전에는 아무 것도 없으며 창이 이미 로드되었을 때만 나중에 시작됩니다.

 

Vitaly가 정확히 말했다!

차트에 패널 을 만들고 거기에서 변수를 관리합니다.

 
Vitaly Muzichenko :

매개변수 창이 나타나기 전에는 아무 것도 없으며 창이 이미 로드되었을 때만 나중에 시작됩니다.

잘 알고 있어서 전문가님들의 조언을 기다립니다. 아마도 이것은 Win API 또는 다른 것을 통해 비표준 수단으로 수행될 수 있습니다.

코드에서 프로그래밍 방식으로 창을 표시하는 것이 정말 불가능합니까?

 
Ventura :

잘 알고 있어서 전문가님들의 조언을 기다립니다. 아마도 이것은 Win API 또는 다른 것을 통해 비표준 수단으로 수행될 수 있습니다.

코드에서 프로그래밍 방식으로 창을 표시하는 것이 정말 불가능합니까?

초기화 전의 Expert Advisor(초기화 전에 입력한 매개변수)는 사용할 수 없으며 작동하지 않습니다. Expert Advisor를 초기화하기 전에 해당 매개변수 창에 액세스할 수 있습니다. 그러나 그것은 당신에게 어울리지 않습니다. 따라서 어드바이저 초기화 후 필요한 값의 다른 입력을 사용하십시오. MessageBox() 함수 창에 액세스할 수 있습니다. 하지만 별로 도움이 되지 않을 것입니다. 값 입력 필드가 없고 동의/비동의/취소 버튼만 있습니다.

따라서 자신의 창을 사용해야 합니다. 그리고 그것은 - 당신이 개체에서 직접 만들 수 있습니다. ObjectCreate() 를 살펴보십시오. 또는 캔버스를 사용하십시오. 그러나 캔버스는 단순한 공예품이 아닙니다.

Документация по MQL5: Графические объекты / ObjectCreate
Документация по MQL5: Графические объекты / ObjectCreate
  • www.mql5.com
ObjectCreate - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin :

초기화 전의 Expert Advisor(초기화 전에 입력한 매개변수)는 사용할 수 없으며 작동하지 않습니다. Expert Advisor를 초기화하기 전에 해당 매개변수 창에 액세스할 수 있습니다. 그러나 그것은 당신에게 어울리지 않습니다. 따라서 어드바이저 초기화 후 필요한 값의 다른 입력을 사용하십시오. MessageBox() 함수 창에 액세스할 수 있습니다. 하지만 별로 도움이 되지 않을 것입니다. 값 입력 필드가 없고 동의/비동의/취소 버튼만 있습니다.

따라서 자신의 창을 사용해야 합니다. 그리고 그것은 - 당신이 개체에서 직접 만들 수 있습니다. ObjectCreate() 를 살펴보십시오. 또는 캔버스를 사용하십시오. 그러나 캔버스는 단순한 공예품이 아닙니다.

Artyom, 고마워요, 당신의 조언을 기다리고 있었습니다. 기다리는 동안 그는 가능한 해결책을 찾고 있었습니다. 오늘 아침에 프로그래밍 방식으로 설정 창을 표시하는 방법을 알아냈습니다!

F7 키를 누르면 창이 호출된다는 것을 알았습니다. 인터넷 검색에 따르면 MQL에서 프로그래밍 방식의 키 입력이 가능합니다.

다음은 기술의 문제입니다. 코드를 게시하면 누군가에게 유용할 수 있습니다.

extern 이중 BuyStop, SellStop;

...

 void SetParams()
  {
   BuyStop = CalcBuyStop();
   SellStop = CalcSellStop();
   int handle = WindowHandle( Symbol (), 0 );
   PostMessageA(handle,WM_KEYDOWN,VK_F7, 0 );
  } 
 

기뻐하기에는 너무 이르다. 매개변수가 있는 창을 프로그래밍 방식으로 열 수 있었지만 프로시저에서 매개변수에 할당한 값은 저장되지 않았습니다(((

즉, 매개변수 창을 열면 초기화 중에 지정된 값(제 경우에는 0)이 표시됩니다.

어떻게 든 계산 된 값을 매개 변수 형식으로 전달할 수 있습니까?

사유: