PDA

View Full Version : Trợ giúp với mã hóa đơn đặt hànglượt truy cập cho EA



kyberpunh777
02-09-2009 17:06, 05:06 PM
Lời chào hỏi!

Tôi nghĩ rằng tôi đang theo dõi câu chuyện thông thường ở đây. Mới với MQL4, một vài lịch sử lập trình (BASIC và HTML), blah, blah, blah, bây giờ tôi đang cố gắng viết EA của riêng tôi.

Nó không có gì đặc biệt. Tôi đang làm việc trong một EA đột phá EA. Tôi tin rằng tôi sẽ giữ nó đơn giản, vì nó là một trong những đầu tiên của tôi. Vì vậy, EA hoạt động dựa trên một quán rượu đóng cửa trên đường và mở bên dưới đường 20 EMA. Thanh nó mở ra một đơn đặt hàng 3 pips trên thanh. Vì đó là một EA thứ tự được đóng khi nhấn vào TP hoặc SL điểm, nó không có chương trình khác cho một đơn đặt hàng cuối cùng.

Đây là vấn đề. Phiên bản tôi đã mở một đơn đặt hàng. Tốt đẹp một khi bạn có một giao dịch có lợi nhuận, hút nếu bạn không. Trong phiên bản 2, tôi thấy rằng bất kỳ giao dịch nào không mở và thử thêm mã truy cập từ một EA khác.

Đây là đề xuất phiên bản 1 (xin lỗi tôi không hiểu cách đặt nó trong một hộp nhỏ gọn gàng):

int start ()

//-

int cnt, complete, ticket;


double emaT = iMA (NULL, 0,20,0, MODE_EMA, PRICE_CLOSE, 0);
đôi MacdCurrent = iMACD (NULL, 0,12,26,9, PRICE_CLOSE, MODE_MAIN, 0);

complete = OrdersTotal ();
if (totallt; 1)


bool buy = false;
bool market = false;

if ((Ask == High [1] gt; 3 * Stage) (Mở [1] lt; emaT) (Đóng [1] gt; emaT) (MacdCurrent gt; 0)) buy = true;
if ((Thấp [1] == Giá thầu gt; 3 * Giai đoạn) (emaT gt; Đóng [1]) (Mở [1] gt; emaT) (MacdCurrent lt; 0)) market = true;



nếu (mua)


ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, 0, Ask-StopLoss * Giai đoạn, Ask TakeProfit * Điểm, Momo Trade, magicnumber, 0, Green);
if (ticketgt; 0)

if (OrderSelect (vé, SELECT_BY_TICKET, MODE_TRADES))


return (0);



if (market)


ticket = OrderSend (Symbol (), OP_SELL, Lots, Bid, 0, Bid StopLoss * Point, Bid-TakeProfit * Điểm, Momo Trade, magicnumber, 0, Red);
if (ticketgt; 0)

if (OrderSelect (vé, SELECT_BY_TICKET, MODE_TRADES))

return (0);



return (0);

//-

Phiên bản 2 hoàn toàn giống nhau, nhưng sử dụng mã này được thêm để có bộ đếm:

orders = OrdersTotal ();
cho (cnt = 0; cntlt; OrdersTotal (); cnt )

{
if (OrderSelect (cnt, SELECT_BY_POS))
OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol () == Biểu tượng ())
{
if (OrderType () == OP_BUY)



Ngoài ra, mặc dù tôi có trọng tâm của mọi người là mã của tôi đúng cho việc đặt hàng dựa trên mức caothấp trước đó với mã (Ask == High [1] gt; 3 * Stage)?

Với hạn!

haybyh
10-11-2021 08:05, 08:05 AM
Hi Skeebo Có một lỗi rõ ràng với kèm theo If statement with brackets. Ví dụ, so sánh điều này với mã của riêng bạn: if (totallt; 1) bool buy = false; bool sell = false; hi vọng điêu nay co ich