좀 답답하네요... "OrderModify 오류 1"이 계속 표시되지만 나중에 살펴보겠습니다. 그 외에는 아무것도!
if ( OrderSelect (NewOrder,SELECT_BY_TICKET,MODE_TRADES)== true ){
Print ( " Stop loss value for the order is " , OrderStopLoss());
Print ( "lots for the order " ,OrderLots());
}
elseif ( OrderSelect (NewOrder,SELECT_BY_TICKET,MODE_TRADES)== false ){
Print ( " OrderSelect failed error code is " , GetLastError ());
}
double minLot = MarketInfo( Symbol (), MODE_MINLOT),
lotStep = MarketInfo( Symbol (), MODE_LOTSTEP),
sizeCurr = OrderLots(),
sizeClose = MathFloor (sizeCurr/lotStep)*lotStep/ 2 ,
sizeRem = sizeCurr - sizeClose;
//if (sizeClose < minLot) return(false);//if (sizeRem < minLot){ sizeClose = sizeCurr;if (OrderTakeProfit()-OrderOpenPrice()/ 2 +OrderOpenPrice() == Bid) // Does this make sense? I am wanting this "if" statement to be true, if price (bid) reaches the price in this comparison statement?
if (OpenOrdersThisPair( Symbol ())== 1 )
CloseHalfLong = OrderClose(OrderTicket(),sizeClose,Bid, 3 , CLR_NONE );
if (CloseHalfLong!=TRUE) Print ( "Last Error = " , GetLastError ());
}
나는 MathFloor가 답을 정수로 반올림한다는 인상을 받았습니다. MathFloor가 올바른지 확실하지 않습니까? 내가 사용하고 있는 브로커는 0.01을 로트 단계로 사용할 것입니다...
좀 답답하네요... "OrderModify 오류 1"이 계속 표시되지만 나중에 살펴보겠습니다. 그 외에는 아무것도! 나는 MathFloor가 답을 정수로 반올림한다는 인상을 받았습니다. MathFloor가 올바른지 확실하지 않습니까? 내가 사용하고 있는 브로커는 0.01을 로트 단계로 사용할 것입니다...
나는 당신에게 작동할 코드를 줬는데 왜 당신은 그것을 사용하지 않습니까? 무슨 일이 일어나고 있는지보기 위해 변수를 인쇄하지 않는 이유는 무엇입니까? 게시한 코드에 OrderModify()가 없습니다. 어떻게 관련이 있습니까? 내가 이미 말했듯이 . . . OrderSelect()가 실패한 경우 OrderSelect()에 의존하는 거래 함수 를 호출하는 이유는 무엇입니까?
코딩을 중지하고, 코드를 살펴보고, 한 줄씩 읽고, 실제로 수행하는 작업을 이해하고, 의도한 것과 다른 경우 수정해야 하는 문제가 있습니다.
나는 MathFloor와 거기에 있는 당신의 링크를 읽어야 합니다. 이것은 저에게 모두 새롭고 이해하기 위해 고군분투하고 있습니다. 내일 처리하겠습니다.
고마워 얘들아!
어떤 아이디어?
내가 뭔가를 놓치고 있습니까?
웁스 - 네 정렬했습니다. 그래도 변한 건 없잖아요?
내가 뭔가를 놓치고 있습니까?
OrderSelect()가 실패한 경우에도 다음을 수행하는 이유는 무엇입니까?
보류 중인 주문 을 닫지 않았습니다. 오류 보고에서 무엇을 알 수 있었습니까?
나는 당신이 같은 거래를 두 번 선택하려고한다고 생각합니다.
이건 그냥 "기타"가 아니어야 합니까?
처음 거래를 선택하려고 하면 실패하지만 두 번째에는 성공하면 충돌 메시지를 받을 수 있습니다.
좀 답답하네요... "OrderModify 오류 1"이 계속 표시되지만 나중에 살펴보겠습니다. 그 외에는 아무것도!
if ( OrderSelect (NewOrder,SELECT_BY_TICKET,MODE_TRADES)== true ){ Print ( " Stop loss value for the order is " , OrderStopLoss()); Print ( "lots for the order " ,OrderLots()); } else if ( OrderSelect (NewOrder,SELECT_BY_TICKET,MODE_TRADES)== false ){ Print ( " OrderSelect failed error code is " , GetLastError ()); } double minLot = MarketInfo( Symbol (), MODE_MINLOT), lotStep = MarketInfo( Symbol (), MODE_LOTSTEP), sizeCurr = OrderLots(), sizeClose = MathFloor (sizeCurr/lotStep)*lotStep/ 2 , sizeRem = sizeCurr - sizeClose; //if (sizeClose < minLot) return(false); //if (sizeRem < minLot){ sizeClose = sizeCurr; if (OrderTakeProfit()-OrderOpenPrice()/ 2 +OrderOpenPrice() == Bid) // Does this make sense? I am wanting this "if" statement to be true, if price (bid) reaches the price in this comparison statement? if (OpenOrdersThisPair( Symbol ())== 1 ) CloseHalfLong = OrderClose(OrderTicket(),sizeClose,Bid, 3 , CLR_NONE ); if (CloseHalfLong!=TRUE) Print ( "Last Error = " , GetLastError ()); }
나는 MathFloor가 답을 정수로 반올림한다는 인상을 받았습니다. MathFloor가 올바른지 확실하지 않습니까? 내가 사용하고 있는 브로커는 0.01을 로트 단계로 사용할 것입니다...오류가 안나네요...
좀 답답하네요... "OrderModify 오류 1"이 계속 표시되지만 나중에 살펴보겠습니다. 그 외에는 아무것도! 나는 MathFloor가 답을 정수로 반올림한다는 인상을 받았습니다. MathFloor가 올바른지 확실하지 않습니까? 내가 사용하고 있는 브로커는 0.01을 로트 단계로 사용할 것입니다...
나는 당신에게 작동할 코드를 줬는데 왜 당신은 그것을 사용하지 않습니까? 무슨 일이 일어나고 있는지보기 위해 변수를 인쇄하지 않는 이유는 무엇입니까? 게시한 코드에 OrderModify()가 없습니다. 어떻게 관련이 있습니까? 내가 이미 말했듯이 . . . OrderSelect()가 실패한 경우 OrderSelect()에 의존하는 거래 함수 를 호출하는 이유는 무엇입니까?
코딩을 중지하고, 코드를 살펴보고, 한 줄씩 읽고, 실제로 수행하는 작업을 이해하고, 의도한 것과 다른 경우 수정해야 하는 문제가 있습니다.
MathFloor는 소수점 이하 자릿수를 가장 가까운 WHOLE 숫자로 반올림합니까?
FirstTarget은 "OrderClose()" 내에서 사용자 정의 매개변수 로 의미가 있습니까? "sizeClose"가 정확하다고 가정합니까? (인용 코드 참조)
귀하의 코드가 도움이 되지 않았습니다. 죄송합니다.
사용자 정의 변수를 인쇄할 수 있습니까? 그렇다면 저널에 표시되지 않기 때문에 내가 잘못하고 있는 것이 틀림없습니다.
OrderModify는 관련이 없습니다. 맞습니다.