Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 29

Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Herkese iyi günler! Lütfen sipariş silme işlemini danışmana nasıl koyacağımı söyleyin.
Durum şu:
farklı yönlere bekleyen 2 emir veririz, biri tetiklenir, diğeri silinir ve artık verilmez.
Yardımın için çok minnettar olacağım.
Teşekkür ederim.
Örneğin:
// удаляет отложенные ордера по type +
//+------------------------------------------------------------------+
void DeleteOrders( int type)
{
int cnt = OrdersTotal ();
for ( int i=cnt- 1 ; i>= 0 ; i--) {
if (! OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) continue ;
//По желанию
if ( OrderSymbol () != Symbol ()) continue ;
//По желанию
if ( OrderMagicNumber () != mn) continue ;
if ( OrderType () != type) continue ;
if (type == OP_BUYSTOP || type == OP_SELLSTOP )
{
bool Del_1 = OrderDelete ( OrderTicket ());
if (!Del_1)
Print ( "Ошибка удаления ордера. Код ошибки=" , GetLastError ());
else
Print ( "Ордер успешно удален." );
}
if (type == OP_BUYLIMIT || type == OP_SELLLIMIT )
{
bool Del_2 = OrderDelete ( OrderTicket ());
if (!Del_2)
Print ( "Ошибка удаления ордера. Код ошибки=" , GetLastError ());
else
Print ( "Ордер успешно удален." );
}
}
}
//+------------------------------------------------------------------+
Pekala, ondan önce, bir pozisyonun ortaya çıktığını belirleyelim ve fazladan bir sipariş vermenin zamanı geldi.
//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Версия : 16.06.2008 |
//| Описание : Удаление ордеров, противоположных позиции |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| op - операция (-1 - любая позиция) |
//| mn - MagicNumber (-1 - любой магик) |
//+----------------------------------------------------------------------------+
void DeleteOppositeOrders( string sy= "" , int op=- 1 , int mn=- 1 ) {
bool eb, es;
switch (op) {
case OP_BUY : eb=ExistPositions(sy, OP_BUY , mn); break ;
case OP_SELL : es=ExistPositions(sy, OP_SELL , mn); break ;
default : eb=ExistPositions(sy, OP_BUY , mn);
es=ExistPositions(sy, OP_SELL , mn); break ;
}
if (eb) {
DeleteOrders(sy, OP_SELLLIMIT , mn);
DeleteOrders(sy, OP_SELLSTOP , mn);
}
if (es) {
DeleteOrders(sy, OP_BUYLIMIT , mn);
DeleteOrders(sy, OP_BUYSTOP , mn);
}
}
Örneğin:
// удаляет отложенные стоп ордера SELLSTOP или BUYSTOP по type +
//+------------------------------------------------------------------+
void DeleteOrders( int type)
{
int cnt = OrdersTotal ();
for ( int i=cnt- 1 ; i>= 0 ; i--) {
if (! OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) continue ;
//По желанию
if ( OrderSymbol () != Symbol ()) continue ;
//По желанию
if ( OrderMagicNumber () != mn) continue ;
if ( OrderType () != type) continue ;
if (type == OP_BUYSTOP || type == OP_SELLSTOP )
{
bool Del_1 = OrderDelete ( OrderTicket ());
if (!Del_1)
Print ( "Ошибка удаления ордера. Код ошибки=" , GetLastError ());
else
Print ( "Ордер успешно удален." );
}
if (type == OP_BUYLIMIT || type == OP_SELLLIMIT )
{
bool Del_2 = OrderDelete ( OrderTicket ());
if (!Del_2)
Print ( "Ошибка удаления ордера. Код ошибки=" , GetLastError ());
else
Print ( "Ордер успешно удален." );
}
}
}
//+------------------------------------------------------------------+
Tür ayrımı nedir? Ne veriyor? Böyle yazılırsa performansta bir fark olur mu?
{
bool Del_1 = OrderDelete ( OrderTicket ());
if (!Del_1)
Print ( "Ошибка удаления ордера. Код ошибки=" , GetLastError ());
else
Print ( "Ордер успешно удален." );
}
iPhone'daki MT4 ve MT5'teki çubuklar neden farklı? Barların açılış ve kapanış saatleri aynı olmasına rağmen. Bu açıkça araya giriyor çünkü hat dün MT4'te saat 14:00'te kırılmadı.
iPhone'daki MT4 ve MT5'teki çubuklar neden farklı? Barların açılış ve kapanış saatleri aynı olmasına rağmen. Bu açıkça araya giriyor çünkü hat dün MT4'te saat 14:00'te kırılmadı.
iPhone'daki MT4 ve MT5'teki çubuklar neden farklı? Barların açılış ve kapanış saatleri aynı olmasına rağmen. Bu açıkça araya giriyor çünkü hat dün MT4'te saat 14:00'te kırılmadı.
- последние четыре строчки в общем понятны, вопрос лишь в функции PlaySound, код которой необходимо вставить после каждой строчки " Print ( "..." в таком виде:
bool PlaySound(
string ödeme // dosya adı
);
... yoksa o da bir şekilde dönüştürülmüş mü?
duyuru bool PlaySound( program başlığında - set dosyasında sesi açıp kapatma olanağına sahip olacaksınız extern bool Play = TRUE;
sonra, Baskı ne yazdıracak? Ve hangi koşulda?
Bu eylemin anlamı nedir? Bir siparişi kapatırken bir ses çalın ve bir yorum yazın (TP veya SL ile)?
Selamlar. Buralara sordum ama henüz cevap bulamadım. Söyle bana, lütfen, neden böyle bir kayıtla
if (x!=maxpr1){x=maxpr1; OrderDelete(biletD);}
if (z!=minpr1){z=minpr1; OrderDelete(ticketUP);}
sürekli hata veriyor
: OrderDelete işlevi için geçersiz bilet
: Sipariş Silme hatası 4051
kılavuza göre o
Geçersiz fonksiyon parametre değeri
parametreler aynı gibi görünse de.
Her ne kadar koşulu kaldırırsanız ve yalnızca bırakırsanız
OrderDelete(biletD);
OrderDelete(ticketUP);
bu başarıyla siler (ancak bir şartla bu gereklidir). Neyi yanlış yapıyorum? İşte tam olarak:
https://www.mql5.com/en/forum/160683/page31#comment_3911573
EA, son X çubuğu için minimum ve maksimum hesaplar ve bunlara siparişler verir. Ayrıca, maksimum düşüş veya minimum artış olduğunda, ilgili siparişi silmeniz ve yeni verileri kullanarak açmanız gerekir.
Çalışmaya yeni başladım ve silme seçeneği, değişiklik değil, işlevin uygulamasını incelemek içindi, neden işe yaramadığı sorusu ortaya çıktı.