เป็นไปได้หรือไม่ที่จะแก้ไข EA ให้ทำงานกับ Partial Lots? แพลตฟอร์มการซื้อขายของฉันอนุญาตให้ใช้. 1, .2, .3 และอื่น ๆ มีส่วนที่ใกล้เคียงกับคำสั่งซื้อของคุณที่ X pips ใน EA นี้ แต่คุณต้องมีการซื้อขายอย่างน้อย 2 หมายเลขมาตรฐานสำหรับฟังก์ชันการทำงาน
นี่คือสิ่งที่ฉันสามารถปรับเปลี่ยนได้หรือไม่?
// ----------------------------------------------- -------------------
//| luktom editor เพื่อสั่งซื้อภาพ
//| luktom :: £ ukasz Tomaszkiewicz |
//|
http://luktom.biz/|
// ----------------------------------------------- -------------------
#property ลิขสิทธิ์ luktom :: £ ukasz Tomaszkiewicz
#property link
http://luktom.biz/
#include lt; stderror.mqhgt;
#include lt; stdlib.mqhgt;
extern bool use_timer = true;
extern int default_sl_level = 10;
extern int default_tp_level = 500;
extern สี sl_color = สีแดง;
extern int sl_style = STYLE_DASH;
extern tp_color = สีน้ำ;
extern int tp_style = STYLE_DASH;
สีภายนอก be_color = สีเหลือง;
extern int be_style = STYLE_DASH;
extern int be_offset = 1;
extern cl_color = สีม่วง;
extern int cl_style = STYLE_DASH;
extern bool use_cp = false;
สีภายนอก cp_color = สีน้ำเงิน;
extern int cp_style = STYLE_DASH;
extern int cp_level = 0;
extern int cp_closedlevel = 0;
extern cp_lots คู่ = 0;
extern color ol_sell_color = สีส้ม;
extern int ol_sell_style = STYLE_DASH;
extern color ol_buy_color = สีน้ำเงิน;
extern int ol_buy_style = STYLE_DASH;
extern bool use_be = เท็จ;
extern int default_be_level = 10;
extern bool use_cl = false;
extern int default_cl_level = 0;
extern bool delete_on_deinit = true;
void init () {
if (use_timer) {
จับเวลา ();
}
}
void timer () {
while (true) {
การนอนหลับ (1000)
if (IsStopped ()) {
กลับ;
}
เริ่มต้น ();
}
}
void deinit () {
if (delete_on_deinit) {
สำหรับ (int i = 0; ilt; ObjectsTotal (); i ) {
ชื่อสตริง = ObjectName (i);
if (String Substr (name, 0,4) == ความรัก) {
ObjectDelete (ชื่อ);
}
}
}
}
void start () {
for (int i = 0; ilt; OrdersTotal (); i ) {
if (OrderSelect (i, SELECT_BY_POS)) {
if (OrderSymbol () == สัญลักษณ์ ()) {
int dgts = MarketInfo (OrderSymbol (), MODE_DIGITS);
if (ObjectFind (lvoe_ol_ OrderTicket ()) == - 1) {
if (OrderType () == OP_SELLLIMIT || OrderType () == OP_SELLSTOP) {
ObjectCreate (lvoe_ol_ OrderTicket (), OBJ_HLINE, 0, เวลา [0], OrderOpenPrice ());
ObjectSet (lvoe_ol_ OrderTicket (), OBJPROP_COLOR, ol_sell_color);
ObjectSet (lvoe_ol_ OrderTicket (), OBJPROP_STYLE, ol_sell_style);
}
if (OrderType () == OP_BUYLIMIT || OrderType () == OP_BUYSTOP) {
ObjectCreate (lvoe_ol_ OrderTicket (), OBJ_HLINE, 0, เวลา [0], OrderOpenPrice ());
ObjectSet (lvoe_ol_ OrderTicket (), OBJPROP_COLOR, ol_buy_color);
ObjectSet (lvoe_ol_ OrderTicket (), OBJPROP_STYLE, ol_buy_style);
}
} else {
if (OrderType () == OP_SELL || OrderType () == OP_BUY) {
ObjectDelete (lvoe_ol_ OrderTicket ());
}
จัดตำแหน่ง (lvoe_ol_ OrderTicket ());
if (NormalizeDouble (OrderOpenPrice (), dgts)! = NormalizeDouble (ObjectGet (lvoe_ol_ OrderTicket (), OBJPROP_PRICE1), dgts)) {
ถ้า OrderModify (OrderTicket (), ObjectGet (lvoe_ol_ OrderTicket (), OBJPROP_PRICE1), OrderStopLoss (), OrderTakeProfit (), OrderExpiration (), CLR_NONE)) {
//การแจ้งเตือน (ErrorDescription (GetLastError ()));
}
ยังคง;
}
}
if (OrderStopLoss () gt; 0 || default_sl_levelgt; 0) {
if (ObjectFind (lvoe_sl_ OrderTicket ()) == - 1) {
if (OrderStopLoss () == 0) {
ObjectCreate (lvoe_sl_ OrderTicket (), OBJ_HLINE, 0, เวลา [0], OrderOpenPrice () - orderDir (OrderType ()) * default_sl_level * Point);
} else {
ObjectCreate (lvoe_sl_ OrderTicket (), OBJ_HLINE, 0, เวลา [0], OrderStopLoss ());
}
ObjectSet (lvoe_sl_ OrderTicket (), OBJPROP_COLOR, sl_color);
ObjectSet (lvoe_sl_ OrderTicket (), OBJPROP_STYLE, sl_style);
ObjectSetText (lvoe_sl_ OrderTicket (), # OrderTicket () หยุดการสูญเสีย, 11);
} else {
จัดตำแหน่ง (lvoe_sl_ OrderTicket ());
if (NormalizeDouble (OrderStopLoss (), dgts)! = NormalizeDouble (ObjectGet (lvoe_sl_ OrderTicket (), OBJPROP_PRICE1), dgts)) {
ถ้า OrderModify (OrderTicket (), OrderOpenPrice (), ObjectGet (lvoe_sl_ OrderTicket (), OBJPROP_PRICE1), OrderTakeProfit (), OrderExpiration (), CLR_NONE)) {
//การแจ้งเตือน (ErrorDescription (GetLastError ()));
}
ยังคง;
}
}
} else {
if (ObjectFind (lvoe_sl_ OrderTicket ())! = - 1) {
ObjectDelete (lvoe_sl_ OrderTicket ());
}
}
if (OrderTakeProfit () gt; 0 || default_tp_level) {
if (ObjectFind (lvoe_tp_ OrderTicket ()) == - 1) {
if (OrderTakeProfit () == 0) {
ObjectCreate (lvoe_tp_ OrderTicket (), OBJ_HLINE, 0, เวลา [0], OrderOpenPrice () orderDir (OrderType ()) * default_tp_level * Point);
} else {
ObjectCreate (lvoe_tp_ OrderTicket (), OBJ_HLINE, 0, เวลา [0], OrderTakeProfit ());
}
ObjectSet (lvoe_tp_ OrderTicket (), OBJPROP_COLOR, tp_color);
ObjectSet (lvoe_tp_ OrderTicket (), OBJPROP_STYLE, tp_style);
} else {
จัดตำแหน่ง (lvoe_tp_ OrderTicket ());
if (NormalizeDouble (OrderTakeProfit (), 4)! = NormalizeDouble (ObjectGet (lvoe_tp_ OrderTicket (), OBJPROP_PRICE1), 4)) {
ถ้า OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss (), ObjectGet (lvoe_tp_ OrderTicket (), OBJPROP_PRICE1), OrderExpiration (), CLR_NONE)) {
//การแจ้งเตือน (ErrorDescription (GetLastError ()));
}
ยังคง;
}
}
} else {
if (ObjectFind (lvoe_tp_ OrderTicket ())! = - 1) {
ObjectDelete (lvoe_tp_ OrderTicket ());
}
}
if (use_cp cp_levelgt; 0) {
if (ObjectFind (lvoe_cp_ OrderTicket ()) == - 1) {
if (OrderType () == OP_BUY || OrderType () == OP_BUYLIMIT || OrderType () == OP_BUYSTOP) {
if (OrderStopLoss () lt; OrderOpenPrice ()) {
ObjectCreate (lvoe_cp_ OrderTicket (), OBJ_HLINE, 0, เวลา [0], OrderOpenPrice () cp_level * MarketInfo (OrderSymbol (), MODE_POINT));
ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_COLOR, cp_color);
ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_STYLE, cp_style);
}
} else {
if (OrderStopLoss () gt; OrderOpenPrice ()) {
ObjectCreate (lvoe_cp_ OrderTicket), OBJ_HLINE, 0, เวลา [0], OrderOpenPrice () - cp_level * MarketInfo (OrderSymbol (), MODE_POINT));
ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_COLOR, cp_color);
ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_STYLE, cp_style);
}
}
} else {
if (OrderType () == OP_BUY) {
if (MarketInfo (OrderSymbol (), MODE_BID) gt; ObjectGet (lvoe_cp_ OrderTicket (), OBJPROP_PRICE1)) {
if (OrderClose (OrderTicket (), cp_lots, MarketInfo (OrderSymbol (), MODE_BID), 0)) {
ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_PRICE1, MarketInfo (OrderSymbol (), MODE_BID) cp_closedlevel * MarketInfo (OrderSymbol (), MODE_POINT));
}
ยังคง;
}
}
if (OrderType () == OP_SELL) {
if (MarketInfo (OrderSymbol (), MODE_ASK) lt; ObjectGet (lvoe_cp_ OrderTicket (), OBJPROP_PRICE1)) {
if (OrderClose (OrderTicket (), cp_lots, MarketInfo (OrderSymbol (), MODE_ASK), 0)) {
ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_PRICE1, MarketInfo (OrderSymbol (), MODE_ASK) -cp_closedlevel * MarketInfo (OrderSymbol (), MODE_POINT));
}
ยังคง;
}
}
}
}
if (use_be) {
if (ObjectFind (lvoe_be_ OrderTicket ()) == - 1) {
if (OrderType () == OP_BUY || OrderType () == OP_BUYLIMIT || OrderType () == OP_BUYSTOP) {
if (OrderStopLoss () lt; OrderOpenPrice ()) {
ObjectCreate (lvoe_be_ OrderTicket (), OBJ_HLINE, 0, เวลา [0], OrderOpenPrice () default_be_level * MarketInfo (OrderSymbol (), MODE_POINT));
ObjectSet (lvoe_be_ OrderTicket (), OBJPROP_COLOR, be_color);
ObjectSet (lvoe_be_ OrderTicket (), OBJPROP_STYLE, be_style);
}
} else {
if (OrderStopLoss () gt; OrderOpenPrice ()) {
ObjectCreate (lvoe_be_ OrderTicket (), OBJ_HLINE, 0, เวลา [0], OrderOpenPrice () - default_be_level * MarketInfo (OrderSymbol (), MODE_POINT));
ObjectSet (lvoe_be_ OrderTicket (), OBJPROP_COLOR, be_color);
ObjectSet (lvoe_be_ OrderTicket (), OBJPROP_STYLE, be_style);
}
}
} else {
if (OrderType () == OP_BUY) {
if (MarketInfo (OrderSymbol (), MODE_BID) gt; ObjectGet (lvoe_be_ OrderTicket (), OBJPROP_PRICE1)) {
ObjectSet (lvoe_sl_ OrderTicket (), OBJPROP_PRICE1, OrderOpenPrice () be_offset * MarketInfo (OrderSymbol (), MODE_POINT));
/*
if (! OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice (), OrderTakeProfit (), OrderExpiration (), CLR_NONE)) {
//การแจ้งเตือน (ErrorDescription (GetLastError ()));
}
*
ยังคง;
}
}
if (OrderType () == OP_SELL) {
if (MarketInfo (OrderSymbol (), MODE_ASK) lt; ObjectGet (lvoe_be_ OrderTicket (), OBJPROP_PRICE1)) {
ObjectSet (lvoe_sl_ OrderTicket (), OBJPROP_PRICE1, OrderOpenPrice () - be_offset * MarketInfo (OrderSymbol (), MODE_POINT));
/*
if (! OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice (), OrderTakeProfit (), OrderExpiration (), CLR_NONE)) {
//การแจ้งเตือน (ErrorDescription (GetLastError ()));
}
*
ยังคง;
}
}
}
}
if (use_cl) {
if (ObjectFind (lvoe_cl_ OrderTicket ()) == - 1) {
if (OrderType ()! = OP_BUY OrderType ()! = OP_SELL) {
if (OrderType () == OP_BUY || OrderType () == OP_BUYLIMIT || OrderType () == OP_BUYSTOP) {
ObjectCreate (lvoe_cl_ OrderTicket (), OBJ_HLINE, 0, เวลา [0], OrderOpenPrice () - default_cl_level * MarketInfo (OrderSymbol (), MODE_POINT));
ObjectSet (lvoe_cl_ OrderTicket (), OBJPROP_COLOR, cl_color);
ObjectSet (lvoe_cl_ OrderTicket (), OBJPROP_STYLE, cl_style);
} else {
ObjectCreate (lvoe_cl_ OrderTicket (), OBJ_HLINE, 0, เวลา [0], OrderOpenPrice () default_cl_level * MarketInfo (OrderSymbol (), MODE_POINT));
ObjectSet (lvoe_cl_ OrderTicket (), OBJPROP_COLOR, cl_color);
ObjectSet (lvoe_cl_ OrderTicket (), OBJPROP_STYLE, cl_style);
}
}
} else {
if (OrderType () == OP_BUYLIMIT || OrderType () == OP_BUYSTOP) {
if (MarketInfo (OrderSymbol (), MODE_BID) lt; ObjectGet (lvoe_cl_ OrderTicket (), OBJPROP_PRICE1)) {
OrderDelete (OrderTicket ());
}
}
if (OrderType () == OP_SELLLIMIT || OrderType () == OP_SELLSTOP) {
if (MarketInfo (OrderSymbol (), MODE_ASK) gt; ObjectGet (lvoe_cl_ OrderTicket (), OBJPROP_PRICE1)) {
OrderDelete (OrderTicket ());
}
}
if (OrderType () == OP_BUY || OrderType () == OP_SELL) {
ObjectDelete (lvoe_cl_ OrderTicket ());
}
}
}
}
}
}
สำหรับ (i = 0; ilt; OrdersHistoryTotal (); i ) {
if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if (ObjectFind (lvoe_ol_ OrderTicket ())! = - 1) {
ObjectDelete (lvoe_ol_ OrderTicket ());
}
if (ObjectFind (lvoe_tp_ OrderTicket ())! = - 1) {
ObjectDelete (lvoe_tp_ OrderTicket ());
}
if (ObjectFind (lvoe_sl_ OrderTicket ())! = - 1) {
ObjectDelete (lvoe_sl_ OrderTicket ());
}
if (ObjectFind (lvoe_be_ OrderTicket ())! = - 1) {
ObjectDelete (lvoe_be_ OrderTicket ());
}
if (ObjectFind (lvoe_cl_ OrderTicket ())! = - 1) {
ObjectDelete (lvoe_cl_ OrderTicket ());
}
if (ObjectFind (lvoe_cp_ OrderTicket ())! = - 1) {
ObjectDelete (lvoe_cp_ OrderTicket ());
}
}
}
}
void align (string name) {
ObjectSet (ชื่อ OBJPROP_PRICE1, NormalizeDouble (ObjectGet (ชื่อ OBJPROP_PRICE1) Digits));
}
int orderDir (int oType) {
ถ้า (oType == OP_BUY || oType == OP_BUYLIMIT || oType == OP_BUYSTOP) return (1);
if (oType == OP_SELL || oType == OP_SELLLIMIT || oType == OP_SELLSTOP) return (-1);
}