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

 
Vladimir Karputov :

마우스 좌표를 반환하는 MQL5 함수는 없습니다. 하지만 이 솔루션을 사용할 수 있습니다. 첨부된 파일을 기반으로 마지막 마우스 좌표를 OnChartEvent에 저장하는 것을 추가한 다음 버튼을 클릭할 때 이 좌표를 표시합니다.

이해했습니다 감사합니다

 

이벤트의 또 다른 이상한 문제.

입력 매개변수를 기반으로 레이블과 사각형을 생성하는 클래스가 있습니다.

직사각형의 색에 의해 온/오프 상태가 있습니다.

 //+------------------------------------------------------------------+
//|                                                CreateLabels.mqh |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
class CreateKeyStateLabel{
private :
   string label_text;
   int x;
   int y;
   bool _state;
public :
   CreateKeyStateLabel( string label_text, int x, int y){
       this .label_text = label_text;
       this .x = x;
       this .y = y;
      _state = false ;
       ObjectCreate ( 0 ,label_text+ "_icon" , OBJ_RECTANGLE_LABEL , 0 , 1 , 1 );
       ObjectSetInteger ( 0 ,label_text+ "_icon" , OBJPROP_XDISTANCE , x);
       ObjectSetInteger ( 0 ,label_text+ "_icon" , OBJPROP_YDISTANCE , y);
       ObjectSetInteger ( 0 ,label_text+ "_icon" , OBJPROP_XSIZE , 15 );
       ObjectSetInteger ( 0 ,label_text+ "_icon" , OBJPROP_YSIZE , 15 );
       ObjectSetInteger ( 0 ,label_text+ "_icon" , OBJPROP_BGCOLOR , clrDarkGray );
      
       ObjectCreate ( 0 ,label_text+ "_label" , OBJ_LABEL , 0 , 1 , 1 );
       ObjectSetInteger ( 0 ,label_text+ "_label" , OBJPROP_XDISTANCE , x+ 17 );
       ObjectSetInteger ( 0 ,label_text+ "_label" , OBJPROP_YDISTANCE , y);
       ObjectSetInteger ( 0 ,label_text+ "_label" , OBJPROP_COLOR , clrBlack );
       ObjectSetString ( 0 ,label_text+ "_label" , OBJPROP_TEXT , label_text);
   }
   
   ~CreateKeyStateLabel(){
       ObjectDelete ( 0 ,label_text+ "_icon" );
       ObjectDelete ( 0 ,label_text+ "_label" );
   }
   
   void invert(){
       if (_state){
         _state = false ;
         ObjectSetInteger ( 0 ,label_text+ "_icon" , OBJPROP_BGCOLOR , clrDarkGray );
      } else {
         _state = true ;
         ObjectSetInteger ( 0 ,label_text+ "_icon" , OBJPROP_BGCOLOR , clrDarkGreen );
      }
   }
   
   bool state(){
       return _state;
   }
   
};

그런 다음 이러한 개체를 만들고 상태를 전환하는 키를 누를 때 이벤트를 만듭니다.
처음 몇 번은 작동한 다음 키 입력을 무시합니다. 제가 뭘 잘못하고 있는 건가요?


 //+------------------------------------------------------------------+
//|                                                       Events.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#include <CreateLabels.mqh>
#define X_DIST 10
#define Y_DIST 20

CreateKeyStateLabel *tilda = new CreateKeyStateLabel( "Tilda" ,X_DIST,Y_DIST);


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   delete tilda;
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   
  }
//+------------------------------------------------------------------+
void OnChartEvent ( const int id, const long    &lparam, const double &dparam, const string &sparam){
   switch (id){
       case CHARTEVENT_KEYDOWN :{
         if (lparam == "38" ) tilda.invert();
         break ;
      }
   }
}

스위치를 누를 때마다 어떻게 작동하는지 확인했습니다.

 
Vladimir Karputov :

마우스 좌표를 반환하는 MQL5 함수는 없습니다. 하지만 이 솔루션을 사용할 수 있습니다. 첨부된 파일을 기반으로 마지막 마우스 좌표를 OnChartEvent에 저장하는 것을 추가한 다음 버튼을 클릭할 때 이 좌표를 표시합니다.

그리고 그래서

 //---------------------------------------  

   if (id== CHARTEVENT_MOUSE_MOVE )
     {
       ChartXYToTimePrice ( 0 , int (lparam), int (dparam),window,time,price);
       Comment ( "price = " , DoubleToString (price, 5 ), "   time = " , TimeToString (time, TIME_DATE | TIME_MINUTES ));
     }

//---------------------------------------
 
틱 기록은 이미 MT-5의 테스터에게 제공되며 높은 양초는 여전히 입찰 가격에서 고려됩니다. MT-4에 비해 매도호가에 높게 계산하고 그런 양초를 뽑는 것이 좋은 이점이 될 것입니다. 5분에도 스프레드는 대략 1차 ATP, 심지어는 모두 1.5입니다! 그리고 고문 코드의 모든 최고점에 스프레드를 추가하는 것은 얼마나 고통스러운 일입니까! 이것은 개선을 위한 제안이지만 여기에 질문이 있습니다. MqlRates 구조 에 높은 변수가 있습니다. 어떤 가격으로 채워져 있습니까? 설명서에 나와있는대로 최대가 아닌 것 같습니다. 누군가는 알고 있을지도 모릅니다. 그렇지 않으면 연구를 위한 고문을 쓰기에는 너무 게으릅니다.
 

친애하는, 그것은 무엇이며 어디에서 오류를 찾을 수 있습니까?

 2019.05 . 12 11 : 01 : 09.743 Core 6   genetic pass ( 52 , 487 ) tested with error "some error after pass finished" in 0 : 00 : 00.005
TesterStop() 과 관련이 있습니까? 아니요, 오류는 통과 후입니다 ...
 

안녕하세요.
제3자 서비스를 사용하지 않고 MQL5+Telegram API만 사용하지 않고 Telegram의 알림(봇에 대한)과 함께 MQL5의 표시기를 작성할 수 있습니까?

아니면 이를 위해 Expert Advisor를 작성해야 합니까? 어떻게 든 MT4에 대해 비슷한 것을 작성하려고했는데 어떻게 든 조언자에게만 나왔기 때문에 묻습니다.


그리고 두 번째 질문.
내가 필요로 하는 특정 패턴을 알려주는 지표/EA를 작성하는 것이 얼마나 어렵습니까?
예를 들어, 두 개의 약세 양초 다음에 세 개의 강세 양초가 뒤따르나요?

나는 이것을 (대략) 다음과 같이 이해합니다.
종가 < 시가 = 약세 캔들
종가 > 시가 = 강세 캔들

내 마음대로 되지 않는다면 아마 돈 주고 주문할 것 같다))

관심을 가져 주셔서 감사합니다!

 

타사 프로그램에서 ex 의 코드를 어떻게든 컴파일할 수 있습니까?

Java에서 로봇 생성자와 같은 것을 만들고 있으며 사용자가 소스 코드에 액세스하지 않고 컴파일된 코드를 즉시 수신하기를 바랍니다.

 
Roman Sharanov :

타사 프로그램에서 ex 의 코드를 어떻게든 컴파일할 수 있습니까?

Java에서 로봇 생성자와 같은 것을 만들고 있으며 사용자가 소스 코드에 액세스하지 않고 컴파일된 코드를 즉시 수신하기를 바랍니다.

예, MetaEditor 도움말을 참조하십시오: 알고리즘 거래에 오신 것을 환영합니다 / 다른 IDE와의 통합 / 다른 개발 환경에서 MQL 프로그램 컴파일
 

누군가 알고 있지 않을까요? Excel 테이블에서 MQL5 스크립트로 데이터를 전송하는 작업을 하고 있습니다. 모든 것이 괜찮은 것 같지만 EXcel에서는 점 대신 쉼표가 있는 10진수 데이터입니다.

질문: MQL 스크립트에 쉼표와 함께 Excel에서 데이터를 가져와 점으로 변경하는 메커니즘이 있습니까? 아니면 Excel 자체에서 점으로 변경하는 것이 더 낫습니까?

스크립트를 사용하여 필요한 셀에서 Excel의 데이터를 포인트별로 가져오려면 어떻게 해야 합니까? 그렇지 않으면 열에 정렬하고 매크로를 작성하는 등의 작업을 해야 합니까? 데이터 중에는 날짜와 정수 및 소수가 있습니다. 이 엑셀이 얼마나 불편한지, 아니면 아직 익숙하지 않은지...

어떤 조언을 해주시면 감사하겠습니다...

 
Vladimir M. :

누군가 알고 있지 않을까요? Excel 테이블에서 MQL5 스크립트로 데이터를 전송하는 작업을 하고 있습니다. 모든 것이 괜찮아 보이지만 EXcel에서는 10진수 데이터에 점 대신 쉼표가 있습니다.

질문: MQL 스크립트에 쉼표와 함께 Excel에서 데이터를 가져와 점으로 변경하는 메커니즘이 있습니까? 아니면 Excel 자체에서 점으로 변경하는 것이 더 낫습니까?

스크립트를 사용하여 필요한 셀에서 Excel의 데이터를 포인트별로 가져오려면 어떻게 해야 합니까? 그렇지 않으면 열에 정렬하고 매크로를 작성하는 등의 작업을 해야 합니까? 데이터 중에는 날짜와 정수 및 소수가 있습니다. 이 엑셀이 얼마나 불편한지, 아니면 아직 익숙하지 않은지...

어떤 조언을 해주시면 감사하겠습니다...

MQL에는 문자열의 문자를 대체하는 기능이 있습니다. 문자열로 읽기

 int    StringReplace (
   string &         str,               // строка, в которой будет осуществляться замена
   const string     find,             // искомая подстрока НАЙТИ ЗАПЯТУЮ ","
   const string     replacement       // подстрока, которая будет вставлена в найденные места ЗАМЕНИТЬ НА ТОЧКУ "."
   );

그리고 더블 타입 으로 변환

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