Bunun gibi, evet, teşekkürler. Bu durumda, nesne olarak kaydedilirlerse, biletler yerine benzersiz büyüler daha iyidir, aksi takdirde aynı ada sahip düzinelerce nesne ortaya çıkar.
StringToInteger ( ObjectName( 0 ,i, 0 )
Yazım hatası mı? Görünüşe göre her iki fonksiyon da sadece bir parametre alabilir.
Nerd Trader # : Bunu bir dizi aracılığıyla yaparsanız, yalnızca içinde yazılı olan değiştirilmiş siparişlerin biletlerini diğerleriyle birlikte kontrol edin.
Bunun gibi, evet, teşekkürler. Bu durumda, nesne olarak kaydedilirlerse, biletler yerine benzersiz büyüler daha iyidir, aksi takdirde aynı ada sahip düzinelerce nesne ortaya çıkar .
Yazım hatası mı? Görünüşe göre her iki fonksiyon da sadece bir parametre alabilir.
üreme
if ( ObjectName (i)!=OrderTicket()) ObjectDelete ( 0 , ObjectName (i));
Bu arada, aşağıdaki hatanın neden periyodik olarak oluştuğunu biliyor musunuz? Başarıyla açılan 100 sipariş için yaklaşık 10 tane var.
2021.10.10 16:18:09.853 2021.01.05 21:15:00 test EURUSD,M5: 4051 | order.sl_price: 2.813499706815862e-262
2021.10.10 16:18:09.853 2021.01.05 21:15:00 test EURUSD,M5: OrderSend error 4051
2021.10.10 16:18:09.853 2021.01.05 21:15:00 test EURUSD,M5: unknown trade cmd 406958564 for OrderSend function
order.sl_price: 2.813499706815862e-262 - zararı durdur fiyatı, açıkçası bu sayı olmamalıdır. 4051 - "Geçersiz fonksiyon parametre değeri" bilinmeyen ticaret cmd sipariş türü nedir? Bu da sorun olmamalı.
class Order{
public :
double open_price;
double sl_price;
double tp_price;
color arrow_color;
string error_text;
int cmd;
Order(){};
void InitForSell( string type = "" ){
if (type == "" ){
Print ( "Ошибка: 'type' должен иметь значение" );
return ;
}
sl_price = NormalizeDouble (db_last.hight + (sl_indent* Point ), Digits ); // (цена + (кол-во пипсов* Point )
arrow_color = clrRed ;
if (type == "sellstop" ){
open_price = NormalizeDouble (db_last.low - (order_indent* Point ), Digits );
if (tp_size != 0 )
tp_price = NormalizeDouble (db_last.low - (order_indent+tp_size)* Point , Digits );
else
tp_price = 0 ;
cmd = OP_SELLSTOP;
error_text = "Ошибка открытия селстопа " ;
}
if (type == "sell" ){
open_price = Bid;
if (tp_size != 0 )
tp_price = NormalizeDouble (Bid - tp_size* Point , Digits );
else
tp_price = 0 ;
cmd = OP_SELL;
error_text = "Ошибка открытия села " ;
}
};
void InitForBuy( string type = "" ){
if (type == "" ){
Print ( "Ошибка: 'type' должен иметь значение" );
return ;
}
sl_price = NormalizeDouble (db_last.low - (sl_indent* Point ), Digits ); // (цена + (кол-во пипсов* Point )
arrow_color = clrGreen ;
if (type == "buystop" ){
open_price = NormalizeDouble (db_last.hight + (order_indent* Point ), Digits );
if (tp_size != 0 )
tp_price = NormalizeDouble (db_last.hight + (order_indent+tp_size)* Point , Digits );
else
tp_price = 0 ;
cmd = OP_BUYSTOP;
error_text = "Ошибка открытия байстопа " ;
}
if (type == "buy" ){
open_price = Ask;
if (tp_size != 0 )
tp_price = NormalizeDouble (Bid + tp_size* Point , Digits );
else
tp_price = 0 ;
cmd = OP_BUY;
error_text = "Ошибка открытия бая " ;
}
};
~Order(){};
};
//-------------------------------------------if (...)
{
ResetLastError ();
int order_send = OrderSend ( Symbol (), order.cmd, 0.01 , order.open_price, 1 ,
order.sl_price, order.tp_price, "" , 0 , 0 , order.arrow_color);
if (order_send == - 1 ) return ;
}
Bu arada, aşağıdaki hatanın neden periyodik olarak oluştuğunu biliyor musunuz? Başarıyla açılan 100 sipariş için yaklaşık 10 tane var.
order.sl_price: 2.813499706815862e-262 - zararı durdur fiyatı, açıkçası bu sayı olmamalıdır. 4051 - "Geçersiz fonksiyon parametre değeri" bilinmeyen ticaret cmd sipariş türü nedir? Bu da sorun olmamalı.
Makar, kodu danışmana şimdiye kadar sadece para birimindeki karı ve puandaki karı karşılaştırmak için ekledi, anladığım kadarıyla bu, bu fonksiyonların sıfır değerleri olduğunda anlaşılabilir.
bu nedenle, yine de her yeni onaydaki koşulları kontrol etmeniz gerekir, önceki onayda çalışmadıysa, yenisinde değişecektir.
Peki, hata işleme yapmanız gerekir.
Yazım hatası mı? Görünüşe göre her iki fonksiyon da sadece bir parametre alabilir.
Bunu bir dizi aracılığıyla yaparsanız, yalnızca içinde yazılı olan değiştirilmiş siparişlerin biletlerini diğerleriyle birlikte kontrol edin.
Bunun gibi, evet, teşekkürler. Bu durumda, nesne olarak kaydedilirlerse, biletler yerine benzersiz büyüler daha iyidir, aksi takdirde aynı ada sahip düzinelerce nesne ortaya çıkar .
Yazım hatası mı? Görünüşe göre her iki fonksiyon da sadece bir parametre alabilir.
üreme
Afedersiniz
https://www.mql5.com/ru/docs/objects/objectname
Bu MT5 için
ve bu MT4 için
üreme
Afedersiniz
Bu arada, aşağıdaki hatanın neden periyodik olarak oluştuğunu biliyor musunuz? Başarıyla açılan 100 sipariş için yaklaşık 10 tane var.
2021.10.10 16:18:09.853 2021.01.05 21:15:00 test EURUSD,M5: 4051 | order.sl_price: 2.813499706815862e-262 2021.10.10 16:18:09.853 2021.01.05 21:15:00 test EURUSD,M5: OrderSend error 4051 2021.10.10 16:18:09.853 2021.01.05 21:15:00 test EURUSD,M5: unknown trade cmd 406958564 for OrderSend functionorder.sl_price: 2.813499706815862e-262 - zararı durdur fiyatı, açıkçası bu sayı olmamalıdır.
4051 - "Geçersiz fonksiyon parametre değeri"
bilinmeyen ticaret cmd sipariş türü nedir? Bu da sorun olmamalı.
Biletler veya fiyat için "min ve max" mı demek istiyorsunuz?
Biletlere göre
Bu arada, aşağıdaki hatanın neden periyodik olarak oluştuğunu biliyor musunuz? Başarıyla açılan 100 sipariş için yaklaşık 10 tane var.
order.sl_price: 2.813499706815862e-262 - zararı durdur fiyatı, açıkçası bu sayı olmamalıdır.
4051 - "Geçersiz fonksiyon parametre değeri"
bilinmeyen ticaret cmd sipariş türü nedir? Bu da sorun olmamalı.
"NormalizeDouble"ı hareket ettirmeyi deneyin
Biletlere göre
"NormalizeDouble"ı hareket ettirmeyi deneyin
değişiklik yapmadan
Makar, kodu danışmana şimdiye kadar sadece para birimindeki karı ve puandaki karı karşılaştırmak için ekledi, anladığım kadarıyla bu, bu fonksiyonların sıfır değerleri olduğunda anlaşılabilir.