주문 마감 오류 처리에 긴급 도움이 필요합니다!
결과 1 - 3 / 3

실: 주문 마감 오류 처리에 긴급 도움이 필요합니다!

  1. #1
    MAGIC NUMBER를 사용한 ORDER CLOSE 오류 처리에 대한 코드가 무엇인지 알아야 합니다.

    Order OPEN 오류 처리로 그렇게 할 수 있습니다.

    하지만 Order CLOSE 오류 처리로 내 코드가 맞는지 확인해야 합니다.




    이것은 잘 작동하는 구매 주문에 대한 내 주문 열기 오류 처리 코드입니다.


    //구입
    if (Order == SIGNAL_BUY ((EachTickMode !TickCheck) || (!EachTickMode (Bars != BarCount)))) {
    if(!IsTrade) {
    //여백 확인
    if (AccountFreeMargin() lt; (1000 * 랏)) {
    Print(돈이 없습니다. Free Margin = , AccountFreeMargin());
    반환(0);
    }

    if (UseStopLoss) StopLossLevel = 묻기 - StopLoss * 포인트; 그렇지 않으면 StopLossLevel = 0.0;
    if (UseTakeProfit) TakeProfitLevel = Ask TakeProfit * Point; 그렇지 않으면 TakeProfitLevel = 0.0;

    티켓 = OrderSend(Symbol(), OP_BUY, 로트, Ask, Slippage, StopLossLevel, TakeProfitLevel, Buy(# MagicNumber ), MagicNumber, 0, DodgerBlue);
    if(티켓 gt; 0) {
    if (OrderSelect(티켓, SELECT_BY_TICKET, MODE_TRADES)) {
    Print(BUY 주문 열림 : , OrderOpenPrice());
    if (SignalMail) SendMail([신호 경고], [ Symbol() ] DoubleToStr(Ask, Digits) 매수 열기);
    } 또 다른 {
    Print(BUY 주문 열기 오류 : , GetLastError());
    인트레이드 = 거짓;
    buyFlag = 거짓;
    }
    }
    else/*** if(Ticket gt;0)에 ELSE 추가
    {
    //거래를 여는 중 오류가 발생했으므로 처리하십시오.
    Print(BUY 주문 열기 오류 : , GetLastError());
    인트레이드 = 거짓;
    buyFlag = 거짓;
    }
    if (EachTickMode) TickCheck = True;
    if (!EachTickMode) BarCount = 바;
    반환(0);
    }
    }



    이것은 구매 주문에 대한 내 주문 닫기 오류 처리 코드입니다.



    // ------------------ -------------------
    //| 신호 종료(매수 종료) |
    // ------------------ -------------------

    if (Order == SIGNAL_CLOSEBUY ((EachTickMode !TickCheck) || (!EachTickMode (Bars != BarCount)))) {
    for (cnt = 합계; cnt gt;=0; cnt--)
    {
    주문선택(cnt,SELECT_BY_POS,MODE_TRADES);
    {
    if (OrderMagicNumber() == MagicNumber)
    {
    nomoretrades = 참;
    인트레이드 = 거짓;
    티켓 = OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
    if(티켓 gt; 0) {
    if (OrderSelect(티켓, SELECT_BY_TICKET, MODE_TRADES)) {
    Print(SELL 주문 마감 : , OrderClosePrice());
    if (SignalMail) SendMail([신호 알림], [ Symbol() ] DoubleToStr(Bid, Digits) Open Sell);
    } 또 다른 {
    Print(BUY 주문 종료 오류 : , GetLastError());
    nomoretrades = 거짓;
    인트레이드 = 참;
    }
    }
    else/*** if(Ticket gt;0)에 ELSE 추가
    {
    //거래를 종료하는 중에 오류가 발생했으므로 처리하세요.
    Print(BUY 주문 종료 오류 : , GetLastError());
    nomoretrades = 거짓;
    인트레이드 = 참;
    }
    }
    }
    }
    if (SignalMail) SendMail([신호 알림], [ Symbol() ] DoubleToStr(Bid, Digits) Close Buy);
    if (!EachTickMode) BarCount = 바;
    IsTrade = 거짓;
    계속하다;
    }
    //후행 정지
    if(UseTrailingStop TrailingStop gt; 0) {
    if(Bid - OrderOpenPrice() gt; 포인트 * TrailingStop) {
    if(OrderStopLoss() lt; 입찰 - 포인트 * TrailingStop) {
    OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
    if (!EachTickMode) BarCount = 바;
    계속하다;
    }
    }
    }
    } 또 다른 {



    누구든지 내 ORDER CLOSE 오류 처리 코드가 올바른지 말해 줄 수 있습니까?

    또한 인쇄된 가격이 잘못되어 OrderClosePrice()를 인쇄하는 데 문제가 있는 것 같습니다. 주문 개시 코드에 대한 OrderOpenPrice()를 인쇄하는 데 문제가 없습니다.

  2. #2
    if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { 전에 } else {

  3. #3
    실제로 그 전에 이 코드가 있습니다./Check position bool IsTrade = False; for (int i = 0; i lt; Total; i ) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType() lt;= OP_SELL OrderSymbol() == Symbol()) { IsTrade = 거짓; if(OrderType() == OP_BUY) {/종가/ ---------------------------------- ------------------ /| 시그널 시작(매수 청산) |/ ------------------ ------------------- if (buyFlag == false Close1 lt; Middle1) { 주문 = SIGNAL_CLOSEBUY; } if (Close[0] lt; Middle1) { 주문 = SIGNAL_CLOSEBUY; buyopenpoint = 열기[0]; } 따라서 마지막 } else{는 실제로 if(OrderType() == OP_BUY) {에 대한 닫는 대괄호입니다. 아니면 Print(Error closed BUY order : , GetLastError()) 앞에 오는 } else {에 대해 이야기하고 있습니까? ?

게시 권한

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
쿠키 정책
쿠키 정책: koreaforex 웹사이트는 쿠키를 사용하며, 웹사이트를 사용자는 쿠키 사용에 동의하는 것입니다. 자세한 정보는 '쿠키 공개' 를 읽어주십시오.