Belirtilen koşullar altında yürütülmesi için bir ticaret emri verin (bekleyen emir)
Bekleyen bir emir vermek için TRADE_ACTION_PENDING ticaret işlemi örneği:
#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);
}
//+------------------------------------------------------------------+
Yasaktır. Tamamen yardımdan alıntı yaptığımdan beri. Ve sonra ormanda biri, yakacak odun için biri: herkesin bir "bileti" var, bazılarının "bileti" var. Bu nedenle, işlevler, yardım ve yardımdan alıntılar İngilizce'dir.
Yasaktır. Tamamen yardımdan alıntı yaptığımdan beri. Ve sonra ormanda biri, yakacak odun için biri: herkesin bir "bileti" var, bazılarının "bileti" var. Bu nedenle, işlevler, yardım ve yardımdan alıntılar İngilizce'dir.
Ve sırf Google ile çevirmeye başladıkları için "biletleri" var :)
Rus resmi referansında "biletler".
Ormanda-yakacak odun için evet, sadece ücretsiz çevirilerden.
Herkese merhaba! Bence soru öncelikle profesyoneller için olacak (görünüşe göre). Bir haftadır, kodla ilgili bir soru musallat oldu.
Örneğin - M5 mumunun 5 M1 mum içerdiğini biliyoruz (örneğin, 00:00, 00:01, 00:02, 00:03 ve 00:04). Ayrıca, yalnızca bu paketi ele alacağız - yani. göstergeyi M1'de başlatıyoruz ve M5'ten gösterge okumalarını görmek istiyoruz.
Onlar. st.TF'nin verilerini genç olanda doğru bir şekilde görüntülemek için, alt TF'nin 5 çubuğunun tümünü göründükleri gibi bir döngüde geçmem gerekiyor. Onlar. önce 00:00 çubuğu görünür, ardından 00:01 vb. 00:04'e kadar ve bundan sonra bir sonraki çubuk TF 00:05'te başlar. onlar. döngü 0'dan 4'e kadar olmalıdır - bu maksimumdur, geçmişteki delikler dikkate alınmazken ... Sorun şu ki 0'dan 5'e bir döngü alıyorum ve bunu telafi etmek için yeterli mantık yok 4'e !!! İnanın bana, bir haftadır bununla mücadele ediyorum ve gerçekten yardımınızı istiyorum. Aşağıda, döngünün 4'e kadar değil 5'e kadar çıktığı, çok kısaltılmış bir kod var. 4'e kadar istiyorum!!!!!
#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);
}
//+------------------------------------------------------------------+
Yukarıda kitaplığım var. Bu liste kutusunun içine etiketli bir düzenleme kutusu eklemek istiyorum. Söyle bana nasıl yapabilirim? Denedim ama işe yaramadı.
ENUM_TRADE_REQUEST_ACTIONS
tanımlayıcı
Tanım
TRADE_ACTION_DEAL
Belirtilen parametrelerle (piyasa emri) anında icra için bir ticaret emri verin
TRADE_ACTION_PENDING
Belirtilen koşullar altında yürütülmesi için bir ticaret emri verin (bekleyen emir)
Bekleyen bir emir vermek için TRADE_ACTION_PENDING ticaret işlemi örneği:
ENUM_TRADE_REQUEST_ACTIONS
tanımlayıcı
Tanım
TRADE_ACTION_DEAL
Belirtilen parametrelerle (piyasa emri) anında icra için bir ticaret emri verin
TRADE_ACTION_PENDING
Belirtilen koşullar altında yürütülmesi için bir ticaret emri verin (bekleyen emir)
Teşekkür ederim!
Bekleyen bir emir vermek için TRADE_ACTION_PENDING ticaret işlemi örneği:
Vladimir, Rusça yazamaz mısın?
Yasaktır. Tamamen yardımdan alıntı yaptığımdan beri. Ve sonra ormanda biri, yakacak odun için biri: herkesin bir "bileti" var, bazılarının "bileti" var. Bu nedenle, işlevler, yardım ve yardımdan alıntılar İngilizce'dir.
Yasaktır. Tamamen yardımdan alıntı yaptığımdan beri. Ve sonra ormanda biri, yakacak odun için biri: herkesin bir "bileti" var, bazılarının "bileti" var. Bu nedenle, işlevler, yardım ve yardımdan alıntılar İngilizce'dir.
Herkese merhaba! Bence soru öncelikle profesyoneller için olacak (görünüşe göre). Bir haftadır, kodla ilgili bir soru musallat oldu.
Örneğin - M5 mumunun 5 M1 mum içerdiğini biliyoruz (örneğin, 00:00, 00:01, 00:02, 00:03 ve 00:04). Ayrıca, yalnızca bu paketi ele alacağız - yani. göstergeyi M1'de başlatıyoruz ve M5'ten gösterge okumalarını görmek istiyoruz.
Onlar. st.TF'nin verilerini genç olanda doğru bir şekilde görüntülemek için, alt TF'nin 5 çubuğunun tümünü göründükleri gibi bir döngüde geçmem gerekiyor. Onlar. önce 00:00 çubuğu görünür, ardından 00:01 vb. 00:04'e kadar ve bundan sonra bir sonraki çubuk TF 00:05'te başlar. onlar. döngü 0'dan 4'e kadar olmalıdır - bu maksimumdur, geçmişteki delikler dikkate alınmazken ... Sorun şu ki 0'dan 5'e bir döngü alıyorum ve bunu telafi etmek için yeterli mantık yok 4'e !!! İnanın bana, bir haftadır bununla mücadele ediyorum ve gerçekten yardımınızı istiyorum. Aşağıda, döngünün 4'e kadar değil 5'e kadar çıktığı, çok kısaltılmış bir kod var. 4'e kadar istiyorum!!!!!
Liste olarak bir düzenleme penceresi nasıl eklenir?
https://www.mql5.com/en/docs/standardlibrary/controls/clistview
Yukarıda kitaplığım var. Bu liste kutusunun içine etiketli bir düzenleme kutusu eklemek istiyorum. Söyle bana nasıl yapabilirim? Denedim ama işe yaramadı.
Ve sırf Google ile çevirmeye başladıkları için "biletleri" var :)
Tamam, itiraf ediyorum: beni yakaladı. Hızlı yanıt verdi ve yardım dilini değiştirmedi 😎
Kabul edilmiş ;)