ernest02 :
판매가 작동하지 않았습니다. . . OrderSend(), OrderModify(), OrderClose() 등과 같은 OrderXxxx() 함수가 실패할 때 오류를 인쇄하는 코드를 추가합니다. . . 추가 정보: 함수 반환 값이란 무엇입니까? 어떻게 사용합니까?
프로그램이 성공적인 이전 줄 이후에 줄을 건너뛰고 해당 줄의 지침을 무시하는 이유를 이해할 수 없습니다.
아래 코드를 보면 Strategy Tester에서 성공적으로 수행된 Sell 트랜잭션이 있지만 Sell 트랜잭션은 Journal에 기록되지 않으며 OrderSend 이후의 코드 라인도 무시되고 그렇지 않다는 것을 알 수 있습니다. 저널에 기록.
무슨 일이야?
어네스트02,
아마도 이것이 당신에게 유용할 것입니까?
Print ( "Error description" , GetLastError ());
고맙습니다.
고마워 얘들아....하지만...
전략 테스터 는 여러 매도 거래를 보여줍니다. 거래에 오류가 있는 경우 오류 루틴이 있지만(아래에 표시된 코드) 보고된 오류는 없습니다.
// Error handling if (SellTicket == - 1 ) { ErrorCode = GetLastError (); ErrDesc = ErrorDescription(ErrorCode); ErrAlert = StringConcatenate ( "Open Sell Order - Error " ,ErrorCode, ": " ,ErrDesc); Alert (ErrAlert); ErrLog = StringConcatenate ( "Ask: " ,Ask, " Lots: " ,LotSize, " Price: " ,SellPrice, " Stop: " ,SellStopLoss, " Profit: " ,SellTakeProfit); Print (ErrLog); }
ernest02 :
SellTicket은 double 또는 int 입니까? 게시한 2비트의 코드와 그 사이의 모든 코드를 보여주시겠습니까? . .
고마워 얘들아....하지만...
전략 테스터는 여러 매도 거래를 보여줍니다. 거래에 오류가 있는 경우 오류 루틴이 있지만(아래에 표시된 코드) 보고된 오류는 없습니다.
SellTicket은 정수입니다.
다음은 더 많은 코드입니다.
if (SellSignal == true && CCIReal < (CCILevel - SellLevel) && TotalSellOrders <= MaxTrans && SellTrans == true ) { Print ( "CCI is " ,CCIReal); for (Count = OrdersTotal ()- 1 ; Count >= 0 ; Count--) if ( OrderSelect (Count, SELECT_BY_POS) && OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber) { int BuyOrder = OrderTicket(); while (IsTradeContextBusy()) Sleep ( 10 ); bool Closed = OrderClose(BuyOrder, OrderLots(), Bid, UseSlippage, Blue); // Error handling if (Closed == false ) { ErrorCode = GetLastError (); string ErrDesc = ErrorDescription(ErrorCode); string ErrAlert = StringConcatenate ( " Close Buy Order Error - Error " ,ErrorCode, ": " ,ErrDesc, " Bid is " , Bid, " SellTakeProfit is " , SellTakeProfit); Alert (ErrAlert); string ErrLog = StringConcatenate ( "OrderTicket: " ,OrderTicket()); Print (ErrLog); } } RefreshRates(); SellPrice = Bid; if (TrailingStopFunc == false ) SellStopLoss = Bid + (StopLoss * UsePoint); else SellStopLoss = 0 ; SellTakeProfit = Bid - (TakeProfit * UsePoint); if (IsTradeContextBusy()) Sleep ( 10 ); SellTicket = OrderSend ( Symbol (),OP_SELL,LotSize,SellPrice,UseSlippage,SellStopLoss,SellTakeProfit, "CCITrendReversal" ,MagicNumber, 0 ,Red); Print ( "SellTicket is " ,SellTicket); if (SellTicket >= 0 ) { PlaySound ( "news.wav" ); SellTime = OrderOpenTime(); SellSignal = false ; } Print ( "SellSignal2 is " , SellSignal); // Error handling if (SellTicket == - 1 ) { ErrorCode = GetLastError (); ErrDesc = ErrorDescription(ErrorCode); ErrAlert = StringConcatenate ( "Open Sell Order - Error " ,ErrorCode, ": " ,ErrDesc); Alert (ErrAlert); ErrLog = StringConcatenate ( "Ask: " ,Ask, " Lots: " ,LotSize, " Price: " ,SellPrice, " Stop: " ,SellStopLoss, " Profit: " ,SellTakeProfit); Print (ErrLog); } }
ernest02 :
SellTicket은 정수입니다.
다음은 더 많은 코드입니다.
고맙습니다 . . . Sell 가 효과가 있었다면 어떤 일이 일어났는지 분명히 하기 위해서입니다. . .
Print ( "SellTicket is " ,SellTicket); // <--- this will be printed to the journal if (SellTicket >= 0 ) { PlaySound ( "news.wav" ); // <--- PlaySound does not work in the Strategy Tester SellTime = OrderOpenTime(); // <--- if the Sell worked this variable will be set (or do we first need an OrderSelect() ?) SellSignal = false ; // <--- if the Sell worked this variable will be set } Print ( "SellSignal2 is " , SellSignal); // <--- this will be printed to the journal
ernest02 :
기이한 . . . 실수로 Experts 탭을 보고 있지 않다면? tester/logs/ 에서 로그인을 보셨습니까?
이것이 너무 이상한 것입니다!
전략 테스터는 많은 판매 거래를 기록하지만 저널에는 아무것도 표시되지 않습니다.
코드를 처음부터 다시 살펴보고 몇 가지를 변경하고 어떤 일이 일어나는지 살펴보겠습니다.
도움을 주셔서 감사합니다. 매우 감사.
(오류의 원인을 찾으면 다시 보고하겠습니다. 그렇지 않으면 코드를 다시 작성하겠습니다.)
ernest02 : Strategy Tester는 많은 Sell 거래를 기록하지만 저널에는 아무것도 표시되지 않습니다.
테스터에서 비주얼 모드를 사용하지 않는 한 저널에는 아무 것도 없을 것입니다.
프로그램이 성공적인 이전 줄 이후에 줄을 건너뛰고 해당 줄의 지침을 무시하는 이유를 이해할 수 없습니다.
아래 코드를 보면 Strategy Tester 에서 성공적으로 수행된 Sell 트랜잭션이 있지만 Sell 트랜잭션은 Journal에 기록되지 않으며 OrderSend 이후의 코드 라인도 무시되고 기록되지 않습니다. 저널에 기록.
무슨 일이야?
(많은 라인 중 하나에서 볼 수 있듯이 데이터에 몇 가지 문제가 있습니다. 2012.12.31 11:21:27 TestGenerator: 일치하지 않는 데이터 오류(2012.11.05 06:00에서 볼륨 제한 2430 초과)
다음은 내가 참조하는 코드 스니펫입니다.