MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1124

 
Vladimir Karputov :

ENUM_TRADE_REQUEST_ACTIONS

식별자

설명

TRADE_ACTION_DEAL

지정된 매개변수(시장가 주문)로 즉시 실행하기 위해 거래 주문을 하십시오.

TRADE_ACTION_PENDING

지정된 조건에서 실행을 위한 거래 주문(보류 주문)

보류 중인 주문을 위한 TRADE_ACTION_PENDING 거래 작업의 예:

 #property description "Example of placing pending orders"
#property script_show_inputs
#define EXPERT_MAGIC 123456                              // MagicNumber of the expert
input ENUM_ORDER_TYPE orderType= ORDER_TYPE_BUY_LIMIT ;   // order type
//+------------------------------------------------------------------+
//| Placing pending orders                                           |
//+------------------------------------------------------------------+
void OnStart ()
  {
//--- declare and initialize the trade request and result of trade request
   MqlTradeRequest request={ 0 };
   MqlTradeResult   result={ 0 };
//--- parameters to place a pending order
   request.action   = TRADE_ACTION_PENDING ;                             // type of trade operation
   request.symbol   = Symbol ();                                         // symbol
   request.volume   = 0.1 ;                                               // volume of 0.1 lot
   request.deviation= 2 ;                                                 // allowed deviation from the price
   request.magic    =EXPERT_MAGIC;                                     // MagicNumber of the order
   int offset = 50 ;                                                     // offset from the current price to place the order, in points
   double price;                                                       // order triggering price
   double point= SymbolInfoDouble ( _Symbol , SYMBOL_POINT );                 // value of point
   int digits= SymbolInfoInteger ( _Symbol , SYMBOL_DIGITS );                 // number of decimal places (precision)
   //--- checking the type of operation
   if (orderType== ORDER_TYPE_BUY_LIMIT )
     {
      request.type     = ORDER_TYPE_BUY_LIMIT ;                           // order type
      price= SymbolInfoDouble ( Symbol (), SYMBOL_ASK )-offset*point;         // price for opening 
      request.price    = NormalizeDouble (price,digits);                 // normalized opening price 
     }
   else if (orderType== ORDER_TYPE_SELL_LIMIT )
     {
      request.type     = ORDER_TYPE_SELL_LIMIT ;                           // order type
      price= SymbolInfoDouble ( Symbol (), SYMBOL_ASK )+offset*point;         // price for opening 
      request.price    = NormalizeDouble (price,digits);                   // normalized opening price 
     }
   else if (orderType== ORDER_TYPE_BUY_STOP )
     {
      request.type = ORDER_TYPE_BUY_STOP ;                                 // order type
      price        = SymbolInfoDouble ( Symbol (), SYMBOL_ASK )+offset*point; // price for opening 
      request.price= NormalizeDouble (price,digits);                       // normalized opening price 
     }
   else if (orderType== ORDER_TYPE_SELL_STOP )
     {
      request.type     = ORDER_TYPE_SELL_STOP ;                           // order type
      price= SymbolInfoDouble ( Symbol (), SYMBOL_ASK )-offset*point;         // price for opening 
      request.price    = NormalizeDouble (price,digits);                   // normalized opening price 
     }
   else Alert ( "This example is only for placing pending orders" );   // if not pending order is selected
//--- send the request
   if (! OrderSend (request,result))
       PrintFormat ( "OrderSend error %d" , GetLastError ());                 // if unable to send the request, output the error code
//--- information about the operation
   PrintFormat ( "retcode=%u  deal=%I64u  order=%I64u" ,result.retcode,result.deal,result.order);
  }
//+------------------------------------------------------------------+
 
Vladimir Karputov :

ENUM_TRADE_REQUEST_ACTIONS

식별자

설명

TRADE_ACTION_DEAL

지정된 매개변수(시장가 주문)로 즉시 실행하기 위해 거래 주문을 하십시오.

TRADE_ACTION_PENDING

지정된 조건에서 실행을 위한 거래 주문(보류 주문)

고맙습니다!

 
Vladimir Karputov :

보류 중인 주문을 위한 TRADE_ACTION_PENDING 거래 작업의 예:

블라디미르, 러시아어로 쓸 수 없습니까?
 
Artyom Trishkin :
블라디미르, 러시아어로 쓸 수 없습니까?

금지되어 있습니다. 도움말에서 완전히 인용했기 때문에. 그리고 숲속의 누군가, 장작을 위한 누군가: 모두에게 "티켓"이 있고, 일부는 "티켓"이 있습니다. 따라서 기능, 도움말 및 도움말의 인용문은 영어로 되어 있습니다.

 
Vladimir Karputov :

금지되어 있습니다. 나는 도움말에서 완전히 인용했기 때문에. 그리고 숲속의 누군가, 장작을 위한 누군가: 모두에게 "티켓"이 있고, 일부는 "티켓"이 있습니다. 따라서 기능, 도움말 및 도움말의 인용문은 영어로 되어 있습니다.

그리고 그들은 Google로 번역을 시작했기 때문에 "티켓"이 있습니다. :)
러시아 공식 참조 "티켓"에서.
무료 번역에서 장작을 위해 숲에서 예.
 

여러분, 안녕하세요! 나는 질문이 주로 전문가를 위한 것이라고 생각합니다(결과적으로). 일주일 동안 코드에 대한 한 가지 질문이 잊혀지지 않았습니다.

예를 들어 - 우리는 M5 양초가 5개의 M1 양초를 포함한다는 것을 알고 있습니다(예: 00:00, 00:01, 00:02, 00:03 및 00:04). 또한이 번들 만 고려할 것입니다. M1에서 표시기를 시작하고 M5 에서 표시기 판독값 을 보고 싶습니다.

저것들. 더 어린 것에서 st.TF의 데이터를 올바르게 표시하려면 루프에서 하위 TF의 5개 막대가 나타날 때 모두 통과해야 합니다. 저것들. 먼저 00:00 막대가 나타난 다음 00:01 등입니다. 00:04까지 그리고 그 후에 다음 바는 TF 00:05에서 시작됩니다. 저것들. 주기는 0에서 4까지여야 합니다. 이것은 최대값이지만 기록의 구멍은 고려되지 않습니다... 문제는 0에서 5까지의 주기를 가져오고 그것을 구성할 논리가 충분하지 않다는 것입니다 4로!!! 저를 믿으세요. 저는 지금 일주일 동안 이것으로 어려움을 겪고 있으며 여러분의 도움을 진심으로 요청합니다. 아래는 루프가 4가 아니라 5까지 가는 매우 잘린 코드입니다. 4까지 원합니다!!!!!

 #property copyright ""
#property link        ""
#property version    ""
#property indicator_chart_window

//+----------------------------------------------+
//| Входные параметры индикатора                 |
//+----------------------------------------------+
input ENUM_TIMEFRAMES TF= PERIOD_M5 ;
int LastCountBar;
datetime tt;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,     // количество истории в барах на текущем тике
                 const int prev_calculated, // количество истории в барах на предыдущем тике
                 const datetime &time[],
                 const double &open[],
                 const double & high[],     // ценовой массив максимумов цены для расчёта индикатора
                 const double & low[],       // ценовой массив минимумов цены  для расчёта индикатора
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   datetime IndTime[ 1 ];
//--- объявления локальных переменных
   int limit,bar;
//--- индексация элементов в массивах как в таймсериях
   ArraySetAsSeries (time, true );
//--- расчёт стартового номера first для цикла пересчёта баров
   if (prev_calculated>rates_total || prev_calculated<= 0 ) // проверка на первый старт расчёта индикатора
     {
      limit= 100 ; // стартовый номер для расчёта всех баров
      LastCountBar=limit;
     }
   else
      limit=LastCountBar+rates_total-prev_calculated; // стартовый номер для расчёта новых баров

//--- основной цикл расчёта индикатора
   for (bar=limit; bar>= 0 ; bar--)
     {
       //--- копируем вновь появившиеся данные в массив IndTime
       if ( CopyTime ( Symbol (),TF,time[bar], 1 ,IndTime)<= 0 )
         return ( 0 );
         
       if (time[bar]>=IndTime[ 0 ] && time[bar+ 1 ]<IndTime[ 0 ])
        {
         LastCountBar=bar;
         //--- Далее проводим вычисления индикатора МТФ ...............
         Print (bar, " " ,IndTime[ 0 ]);
         //---
        }
     }
   return (rates_total);
  }
//+------------------------------------------------------------------+
 

편집 창을 목록으로 추가하는 방법은 무엇입니까?

https://www.mql5.com/en/docs/standardlibrary/controls/clistview

위의 라이브러리가 있습니다. 이 목록 상자 안에 레이블이 있는 편집 상자를 추가하고 싶습니다. 내가 어떻게 할 수 있는지 말해봐? 시도했지만 작동하지 않았습니다.

Documentation on MQL5: Standard Library / Panels and Dialogs / CListView
Documentation on MQL5: Standard Library / Panels and Dialogs / CListView
  • www.mql5.com
//|                                             ControlsListView.mq5 | //|                        Copyright 2017, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| defines                                                          |  INDENT_LEFT                         (11)      ...
 
Artyom Trishkin :
그리고 그들은 Google로 번역을 시작했기 때문에 "티켓"이 있습니다. :)
러시아 공식 참조 "티켓"에서.
무료 번역에서 장작을 위해 숲에서 예.
좋아, 고백한다: 날 잡았어. 신속하게 응답하고 도움말 언어를 전환하지 않았습니다 😎
 
질문은 ~이야. 버튼 클릭으로 2개(또는 그 이상)의 차트를 열어 전체 모니터를 동일하게 차지하도록 세로로 배열할 수 있습니까?
 
Vladimir Karputov :
좋아, 고백한다: 날 잡았어. 신속하게 응답하고 도움말 언어를 전환하지 않았습니다 😎

수락됨 ;)