Results 1 to 2 of 2

Thread: Làm thế nào để thêm một đóng và đảo ngược với mã hiện có hoạt động?

  1. #1
    Đây sẽ là một bài viết dài với rất nhiều dòng mã ...

    Tôi có mã hiện tại hoạt động như dự định có nhiều vị trí và đóng ở mức SL và TP ẩn.

    Tôi muốn thêm vào các chức năng mã hiện có cho phép EA đóng và đảo ngược nếu các tín hiệu được tạo trước khi SL hoặc TP được nhấn.

    Đây là mã hiện có hoạt động tốt:

    Đã chèn mã/---------------------------------------------- ----/THAM GIA THAM GIA/---------------------------------------- ---------- RefreshRates (); {if (TÊN THƯƠNG HIỆU TÙY CHỈNH MUA) {if ((Giờ () == 0) (Phút () == 0)) Ngủ (60000); {fBuy1 (); fBuy2 (); fBuy3 (); fBuy4 (); fBuy5 (); fBuy6 (); }} if (CUSTOM SIGNAL FOR SALE) {if ((Giờ () == 0) (Phút () == 0)) Ngủ (60000); {fSell1 (); fSell2 (); fSell3 (); fSell4 (); fSell5 (); fSell6 (); }}}}/-------------------------------------------- ------/MUA/--------------------------------------- ----------- void fBuy1 () {int result = OrderSend (ST1, OP_BUY, Lots, Ask, Slippage, 0,0, Mở LONG Magic1, Magic1,0, Blue); OrderSelect (kết quả, SELECT_BY_TICKET, MODE_TRADES); In (MUA ĐƠN ĐẶT HÀNG !, #, kết quả, tại, DoubleToStr (OrderOpenPrice (), Digits),, SL:, DoubleToStr (OrderStopLoss (), Digits),, TP:, DoubleToStr (OrderTakeProfit (), Digits),, OpenTrades :, OrdersTotal (),, Đóng # 91; 1 # 93 ;:, Đóng # 91; 1 # 93;); if (SignalMail) SendMail (EA MỞ THƯƠNG MẠI ALERT !, MUA THỨ TỰ MỞ! ST1 , # kết quả tại DoubleToStr (OrderOpenPrice (), Digits) , SL: DoubleToStr (OrderStopLoss (), Digits) , TP : DoubleToStr (OrderTakeProfit (), Digits)); if (result == -1) {int e = GetLastError (); In (e); }} void fBuy2 () {int result = OrderSend (ST1, OP_BUY, Lots, Ask, Slippage, 0,0, Mở LONG Magic2, Magic2,0, Blue); OrderSelect (kết quả, SELECT_BY_TICKET, MODE_TRADES); In (MUA ĐƠN ĐẶT HÀNG !, #, kết quả, tại, DoubleToStr (OrderOpenPrice (), Digits),, SL:, DoubleToStr (OrderStopLoss (), Digits),, TP:, DoubleToStr (OrderTakeProfit (), Digits),, OpenTrades :, OrdersTotal (),, Đóng # 91; 1 # 93 ;:, Đóng # 91; 1 # 93;); if (SignalMail) SendMail (EA MỞ THƯƠNG MẠI ALERT !, MUA THỨ TỰ MỞ! ST1 , # kết quả tại DoubleToStr (OrderOpenPrice (), Digits) , SL: DoubleToStr (OrderStopLoss (), Digits) , TP : DoubleToStr (OrderTakeProfit (), Digits)); if (result == -1) {int e = GetLastError (); In (e); }} ETC ... mã lặp lại tiếp tục thông qua VoidfBuy6/------------------------------------- -------------/BÁN/-------------------------------- ------------------ void fSell1 () {int result = OrderSend (ST1, OP_SELL, Lots, Bid, Slippage, 0,0, Mở SHORT Magic1, Magic1,0, Màu đỏ); OrderSelect (kết quả, SELECT_BY_TICKET, MODE_TRADES); In (BÁN ĐƠN ĐẶT HÀNG !, #, kết quả, tại, DoubleToStr (OrderOpenPrice (), Digits),, SL:, DoubleToStr (OrderStopLoss (), Digits),, TP:, DoubleToStr (OrderTakeProfit (), Digits),, OpenTrades :, OrdersTotal (),, Đóng # 91; 1 # 93 ;:, Đóng # 91; 1 # 93;); if (SignalMail) SendMail (EA MỞ THƯƠNG MẠI ALERT !, BÁN ĐƠN ĐẶT HÀNG! ST1 , # kết quả tại DoubleToStr (OrderOpenPrice (), Digits) , SL: DoubleToStr (OrderStopLoss (), Digits) , TP : DoubleToStr (OrderTakeProfit (), Digits)); if (result == -1) {int e = GetLastError (); In (e); }} void fSell2 () {int result = OrderSend (ST1, OP_SELL, Lots, Bid, Slippage, 0,0, Mở SHORT Magic2, Magic2,0, Đỏ); OrderSelect (kết quả, SELECT_BY_TICKET,MODE_TRADES); In (BÁN ĐƠN ĐẶT HÀNG !, #, kết quả, tại, DoubleToStr (OrderOpenPrice (), Digits),, SL:, DoubleToStr (OrderStopLoss (), Digits),, TP:, DoubleToStr (OrderTakeProfit (), Digits),, OpenTrades :, OrdersTotal (),, Đóng # 91; 1 # 93 ;:, Đóng # 91; 1 # 93;); if (SignalMail) SendMail (EA MỞ THƯƠNG MẠI ALERT !, BÁN ĐƠN ĐẶT HÀNG! ST1 , # kết quả tại DoubleToStr (OrderOpenPrice (), Digits) , SL: DoubleToStr (OrderStopLoss (), Digits) , TP : DoubleToStr (OrderTakeProfit (), Digits)); if (result == -1) {int e = GetLastError (); In (e); }} void fSell3 () {int result = OrderSend (ST1, OP_SELL, Lots, Bid, Slippage, 0,0, Mở SHORT Magic3, Magic3,0, Đỏ); OrderSelect (kết quả, SELECT_BY_TICKET, MODE_TRADES); In (BÁN ĐƠN ĐẶT HÀNG !, #, kết quả, tại, DoubleToStr (OrderOpenPrice (), Digits),, SL:, DoubleToStr (OrderStopLoss (), Digits),, TP:, DoubleToStr (OrderTakeProfit (), Digits),, OpenTrades :, OrdersTotal (),, Đóng # 91; 1 # 93 ;:, Đóng # 91; 1 # 93;); if (SignalMail) SendMail (EA MỞ THƯƠNG MẠI ALERT !, BÁN ĐƠN ĐẶT HÀNG! ST1 , # kết quả tại DoubleToStr (OrderOpenPrice (), Digits) , SL: DoubleToStr (OrderStopLoss (), Digits) , TP : DoubleToStr (OrderTakeProfit (), Digits)); if (result == -1) {int e = GetLastError (); In (e); }} ETC ... mã lặp lại tiếp tục thông qua VoidfSell6/------------------------------------- -------------/HIDDEN SL TP FUNCTION/----------------------------- --------------------- void hidden_stop_loss () {int totalorders = OrdersTotal (); cho (int i = totalorders-1; igt; = 0; i--) {OrderSelect (i, SELECT_BY_POS); bool result = false; {if (OrderMagicNumber () == Magic1) {if (OrderType () == OP_BUY iClose (Ký hiệu (), 1,0) lt; NormalizeDouble (OrderOpenPrice () - ((OrderOpenPrice ()100) * StopLossLong1), 3 )) result = OrderClose (OrderTicket (), OrderLots (), Bid, 50, Red); if (OrderType () == OP_SELL iClose (Ký hiệu (), 1,0) gt; NormalizeDouble (OrderOpenPrice () ((OrderOpenPrice ()100) * StopLossShort1), 3)) result = OrderClose (OrderTicket (), OrderLots (), Hỏi, 50, Đỏ); } if (OrderMagicNumber () == Magic2) {if (OrderType () == OP_BUY iClose (Ký hiệu (), 1,0) lt; NormalizeDouble (OrderOpenPrice () - ((OrderOpenPrice ()100) * StopLossLong2), 3 )) result = OrderClose (OrderTicket (), OrderLots (), Bid, 50, Red); if (OrderType () == OP_SELL iClose (Ký hiệu (), 1,0) gt; NormalizeDouble (OrderOpenPrice () ((OrderOpenPrice ()100) * StopLossShort2), 3)) result = OrderClose (OrderTicket (), OrderLots (), Hỏi, 50, Đỏ); } if (OrderMagicNumber () == Magic3) {if (OrderType () == OP_BUY iClose (Ký hiệu (), 1,0) lt; NormalizeDouble (OrderOpenPrice () - ((OrderOpenPrice ()100) * StopLossLong3), 3 )) result = OrderClose (OrderTicket (), OrderLots (), Bid, 50, Red); if (OrderType () == OP_SELL iClose (Ký hiệu (), 1,0) gt; NormalizeDouble (OrderOpenPrice () ((OrderOpenPrice ()100) * StopLossShort3), 3)) result = OrderClose (OrderTicket (), OrderLots (), Hỏi, 50, Đỏ); } Mã lặp lại ...tiếp tục thông qua Magic6}}; } void hidden_take_profit () {int totalorders = OrdersTotal (); cho (int i = totalorders-1; igt; = 0; i--) {OrderSelect (i, SELECT_BY_POS); bool result = false; {if (OrderMagicNumber () == Magic1) {if (OrderType () == OP_BUY iClose (Ký hiệu (), 1,0) gt; NormalizeDouble (OrderOpenPrice () ((OrderOpenPrice ()100) * TakeProfitLong1), 3 )) result = OrderClose (OrderTicket (), OrderLots (), Bid, 50, Red); if (OrderType () == OP_SELL iClose (Ký hiệu (), 1,0) lt; NormalizeDouble (OrderOpenPrice () - ((OrderOpenPrice ()100) * TakeProfitShort1), 3)) result = OrderClose (OrderTicket (), OrderLots (), Hỏi, 50, Đỏ); } if (OrderMagicNumber () == Magic2) {if (OrderType () == OP_BUY iClose (Ký hiệu (), 1,0) gt; NormalizeDouble (OrderOpenPrice () ((OrderOpenPrice ()100) * TakeProfitLong2), 3 )) result = OrderClose (OrderTicket (), OrderLots (), Bid, 50, Red); if (OrderType () == OP_SELL iClose (Ký hiệu (), 1,0) lt; NormalizeDouble (OrderOpenPrice () - ((OrderOpenPrice ()100) * TakeProfitShort2), 3)) result = OrderClose (OrderTicket (), OrderLots (), Hỏi, 50, Đỏ); } if (OrderMagicNumber () == Magic3) {if (OrderType () == OP_BUY iClose (Ký hiệu (), 1,0) gt; NormalizeDouble (OrderOpenPrice () ((OrderOpenPrice ()100) * TakeProfitLong3), 3 )) result = OrderClose (OrderTicket (), OrderLots (), Bid, 50, Red); if (OrderType () == OP_SELL iClose (Ký hiệu (), 1,0) lt; NormalizeDouble (OrderOpenPrice () - ((OrderOpenPrice ()100) * TakeProfitShort3), 3)) result = OrderClose (OrderTicket (), OrderLots (), Hỏi, 50, Đỏ); } ETC ... mã lặp lại tiếp tục thông qua Magic6}}; }
    Các công trình trên tuyệt vời nhưng tôi muốn thêm một đóng nếu tín hiệu ngược lại và chức năng đảo ngược ...
    Mặc dù EA nhập vào với nhiều số ma thuật và thoát khỏi SLs và TPs ẩn với nhiều số ma thuật, tôi muốn nó thoát khỏi tất cả các vị trí mở nếu tín hiệu ngược lại được tạo trước khi SL hoặc TP bị tấn công và tôi muốn nó đảo ngược và mở một loạt các vị trí đối diện mới.

    Đây là những gì tôi đã cố gắng cho đến nay nhưng nó không hoạt động như mong đợi ... bất kỳ ý tưởng nào khác? Tôi muốn sử dụng khung hiện có ... Tôi đang làm gì sai ở đây?

    Mã được chèn {if (TÊN THƯƠNG MẠI TÙY CHỈNH MUA) {if ((Giờ () == 0) (Phút () == 0)) Ngủ (60000); {CloseSell (); lt; lt; ----- Điều này đã được thêm vào suy nghĩ nó sẽ làm việc hợp lý ... logic bổ sung dưới Sleep (10000); lt; lt; ----- thêm vào để cung cấp cho một bộ đệm để đóng các vị trí hiện có trước khi thực hiện những cái mới không nghĩ rằng nó ảnh hưởng đến lối ra fBuy1 (); fBuy2 (); fBuy3 (); fBuy4 (); fBuy5 (); fBuy6 (); } vv .../------------------------------------------- -------/ĐÓNG FUNCTION TRƯỚC KHI fOpenPostions/---------------------------------- ---------------- void CloseSell () {int totalorders = Đơn hàngTổng (); cho (int i = totalorders-1; igt; = 0; i--) {OrderSelect (i, SELECT_BY_POS); bool result = false; {if (OrderType () == OP_SELL) {result = OrderClose (OrderTicket (), OrderLots (), Ask, 50, Red); }}}} void CloseBuy () {int totalorders = OrdersTotal (); cho (int i = totalorders-1; igt; = 0; i--) {OrderSelect (i, SELECT_BY_POS); bool result = false; {if (OrderType () == OP_BUY) {result = OrderClose (OrderTicket (), OrderLots (), Bid, 50, Red); } } }/ trở về; }
    Mã được thêm vào không hoạt động như tôi nghĩ. Bất kỳ cách giải quyết nào khác?

  2. #2
    nó sẽ giúp nếu bạn nói những gì mã mới làm hay cách khác .... cũng tại sao không thử in lỗi cuối cùng và vé # và thứ tự loại trong vòng lặp gần để bạn có thể xem những gì đang xảy ra nếu không nó chỉ là một đoán

Quyền đăng bài

  • Bạn không thể đăng bài viết mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng tệp đính kèm
  • Bạn không thể chỉnh sửa bài đăng của bạn
  •  
Chính sách Cookie
Chính sách Cookie: Website forexibroker sử dụng cookies và khi tiếp tục sử dụng website bạn chấp thuận với điều này. Để có thêm thông tin, vui lòng đọc 'Thông tin Cookie'.