#property description"Example of placing pending orders"#property script_show_inputs#define EXPERT_MAGIC 123456// MagicNumber of the expertinputENUM_ORDER_TYPE orderType= ORDER_TYPE_BUY_LIMIT ; // order type//+------------------------------------------------------------------+//| Placing pending orders |//+------------------------------------------------------------------+voidOnStart ()
{
//--- declare and initialize the trade request and result of trade requestMqlTradeRequest 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 orderint offset = 50 ; // offset from the current price to place the order, in pointsdouble price; // order triggering pricedouble point= SymbolInfoDouble ( _Symbol , SYMBOL_POINT ); // value of pointint digits= SymbolInfoInteger ( _Symbol , SYMBOL_DIGITS ); // number of decimal places (precision)//--- checking the type of operationif (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
}
elseif (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
}
elseif (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
}
elseif (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
}
elseAlert ( "This example is only for placing pending orders" ); // if not pending order is selected//--- send the requestif (! OrderSend (request,result))
PrintFormat ( "OrderSend error %d" , GetLastError ()); // if unable to send the request, output the error code//--- information about the operationPrintFormat ( "retcode=%u deal=%I64u order=%I64u" ,result.retcode,result.deal,result.order);
}
//+------------------------------------------------------------------+
여러분, 안녕하세요! 나는 질문이 주로 전문가를 위한 것이라고 생각합니다(결과적으로). 일주일 동안 코드에 대한 한 가지 질문이 잊혀지지 않았습니다.
예를 들어 - 우리는 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//+----------------------------------------------+//| Входные параметры индикатора |//+----------------------------------------------+inputENUM_TIMEFRAMES TF= PERIOD_M5 ;
int LastCountBar;
datetime tt;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit ()
{
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate ( constint rates_total, // количество истории в барах на текущем тикеconstint prev_calculated, // количество истории в барах на предыдущем тикеconstdatetime &time[],
constdouble &open[],
constdouble & high[], // ценовой массив максимумов цены для расчёта индикатораconstdouble & low[], // ценовой массив минимумов цены для расчёта индикатораconstdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &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--)
{
//--- копируем вновь появившиеся данные в массив IndTimeif ( 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);
}
//+------------------------------------------------------------------+
ENUM_TRADE_REQUEST_ACTIONS
식별자
설명
TRADE_ACTION_DEAL
지정된 매개변수(시장가 주문)로 즉시 실행하기 위해 거래 주문을 하십시오.
TRADE_ACTION_PENDING
지정된 조건에서 실행을 위한 거래 주문(보류 주문)
보류 중인 주문을 위한 TRADE_ACTION_PENDING 거래 작업의 예:
ENUM_TRADE_REQUEST_ACTIONS
식별자
설명
TRADE_ACTION_DEAL
지정된 매개변수(시장가 주문)로 즉시 실행하기 위해 거래 주문을 하십시오.
TRADE_ACTION_PENDING
지정된 조건에서 실행을 위한 거래 주문(보류 주문)
고맙습니다!
보류 중인 주문을 위한 TRADE_ACTION_PENDING 거래 작업의 예:
블라디미르, 러시아어로 쓸 수 없습니까?
금지되어 있습니다. 도움말에서 완전히 인용했기 때문에. 그리고 숲속의 누군가, 장작을 위한 누군가: 모두에게 "티켓"이 있고, 일부는 "티켓"이 있습니다. 따라서 기능, 도움말 및 도움말의 인용문은 영어로 되어 있습니다.
금지되어 있습니다. 나는 도움말에서 완전히 인용했기 때문에. 그리고 숲속의 누군가, 장작을 위한 누군가: 모두에게 "티켓"이 있고, 일부는 "티켓"이 있습니다. 따라서 기능, 도움말 및 도움말의 인용문은 영어로 되어 있습니다.
여러분, 안녕하세요! 나는 질문이 주로 전문가를 위한 것이라고 생각합니다(결과적으로). 일주일 동안 코드에 대한 한 가지 질문이 잊혀지지 않았습니다.
예를 들어 - 우리는 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까지 원합니다!!!!!
편집 창을 목록으로 추가하는 방법은 무엇입니까?
https://www.mql5.com/en/docs/standardlibrary/controls/clistview
위의 라이브러리가 있습니다. 이 목록 상자 안에 레이블이 있는 편집 상자를 추가하고 싶습니다. 내가 어떻게 할 수 있는지 말해봐? 시도했지만 작동하지 않았습니다.
그리고 그들은 Google로 번역을 시작했기 때문에 "티켓"이 있습니다. :)
좋아, 고백한다: 날 잡았어. 신속하게 응답하고 도움말 언어를 전환하지 않았습니다 😎
수락됨 ;)