시장가 주문을 올바르게 여는 방법은 무엇입니까? - 페이지 4

 
Gennady Mazur :
네, 좋은 조언...

반복합니다

결과를 확인해야 합니다. 주문하다.

주문이 접수되었다고 해서 거래가 이미 이루어진 것은 아닙니다.

또한 주문 현황과 이미 내역에 나타난 적이 있는지 여부도 확인해야 합니다.

거래소는 포지션이 아닌 주문만 가능합니다.

 
Gennady Mazur :

나는 최근에 재오픈 주문에 대한 주제를 제기했습니다. 문제를 해결했다고 생각했기 때문입니다. 일주일 동안 모든 것이 잘 작동했습니다. 그러나 오늘은 열 때만 비슷한 문제가 발생했습니다.
오프닝 9에 Finam에서 많은 주문이 열렸지만... 모든 경우에 하나의 주문만 열렸어야 했습니다.

다음은 EA의 코드 스니펫입니다.

    

저것들. 코드에서 성공적인 작업 시 OpenOrders 변수가 증가한다는 것을 알 수 있습니다. 이 변수는 초기에 0입니다.

0보다 크면 주문이 더 이상 열리지 않아야 하지만 전체 주문 더미가 Order1 주석과 함께 열려 있습니다.

주문을 여는 함수에서 긍정적인 응답과 주문 티켓의 수신을 확인 하지만 실제로 주문이 설정되었다는 사실에도 불구하고 어떤 이유로 이 함수는 false를 반환합니다.

무엇이 잘못되었는지 설명하고 이 문제를 해결하는 방법은 무엇입니까?

어떤 시장을 위해 이 코드를 작성하고 있습니까?
 
prostotrader :
어떤 시장을 위해 이 코드를 작성하고 있습니까?
교환용
 
Gennady Mazur :
교환용
알았어, 내가 봐줄게...
 
Sergey Chalyshev :

반복합니다

또한 주문 현황과 이미 내역에 나타난 적이 있는지 여부도 확인해야 합니다.

거래소는 포지션이 아닌 주문만 가능합니다.

글쎄, Sergey, 봐 .... 이것은 요청 결과에 대한 문서에서 가져온 것입니다.

거래

거래 티켓, 완료되면. 무역 작업 중 보고됨 TRADE_ACTION_DEAL

주문하다

티켓을 주문 하십시오. TRADE_ACTION_PENDING 거래 작업 중 보고됨


보류 중인 주문이 없습니다. TRADE_ACTION_DEAL 을 사용합니다.

당신은 아마도 리미트 트레이더로 일하고 있을 것이고, 모든 것이 정확합니다.
 
Gennady Mazur :

글쎄, Sergey, 봐 .... 이것은 요청 결과에 대한 문서에서 가져온 것입니다.

거래

거래 티켓, 완료되면. 무역 작업 중 보고됨 TRADE_ACTION_DEAL

주문하다

티켓을 주문 하십시오. TRADE_ACTION_PENDING 거래 작업 중 보고됨


보류 중인 주문이 없습니다. TRADE_ACTION_DEAL 을 사용합니다.

당신은 아마도 리미트 트레이더로 일하고 있을 것이고, 모든 것이 정확합니다.
내 답변을 다시 읽거나 서비스 데스크에 글을 쓰십시오.
 
Vladimir Karputov :

필요한 것을 설치하십시오.

그건 그렇고, 나는 방금 인화로 주문을 보낸 결과를 확인했습니다.

따라서 모든 경우에 티켓은 0과 같습니다.

   bool res= false ;
  res= OrderSend (Request,Results);
   if (res)
  {
     Print ( _Symbol +" Test True order "+( string )Results.deal);
     if (Results.deal> 0 ) return ( true );
     else return ( false );
  }
     Print ( _Symbol +" Test False order "+( string )Results.deal);
   return ( false );
 
Gennady Mazur :

그건 그렇고, 나는 방금 인화로 주문을 보낸 결과를 확인 했습니다.

따라서 모든 경우에 티켓은 0과 같습니다.

진행 상황이...



 
Gennady Mazur :

그건 그렇고, 나는 방금 인화로 주문을 보낸 결과를 확인했습니다.

따라서 모든 경우에 티켓은 0과 같습니다.

   bool res= false ;
  res= OrderSend (Request,Results);
   if (res)
  {
     Print ( _Symbol +" Test True order "+( string )Results.deal);
     if (Results.deal> 0 ) return ( true );
     else return ( false );
  }
     Print ( _Symbol +" Test False order "+( string )Results.deal);
   return ( false );

반환 코드는 어디에 있습니까? 이해 방법 - 오류가 있었는지 여부?

이중 보호와 티켓 및 리턴 코드의 출력을 예로 들었습니다.

 

예를 찾지 못했습니다. 설명하겠습니다.

시장에서 주문을 제출할 때 주문이 실행되거나 거부되어야 합니다(FOK 채우기가 있기 때문에)

따라서 거래를 기다릴 필요가 없지만 TICKET을 받아야 합니다.

티켓을 받으면 이 티켓을 가지고 OnTradeTransaction() 으로 "이동"합니다.

어쨌든 시장 주문은 역사에 기록되기 때문에 TRADE_TRANSACTION_HISTORY_ADD에 귀를 기울이십시오.

그리고 티켓을 보고 주문에 무슨 일이 일어났는지 확인하세요.

사유: