정지 제한 - 페이지 6

 

휴식 후 드로우다운을 합리적인 가격으로, 당일 세션 개강, 다음날.
이것은 시장이 열릴 때의 압박입니다.
왜 입찰 가격에 실행이 되지 않는지 혼란스럽습니다.
테스터의 DOM 인용문이 거짓말을 하거나 인용문이 비뚤어진 것이 의심됩니다.
실제 틱 시뮬레이션이 선택되었습니까?

실제 거래에서는 일반적으로 시장 개장 후 처음 1~5분을 건너뜁니다.
그렇지 않으면 첫 번째 가용 가격으로 그러한 압박이 있을 것이며 미친 스프레드와 함께 변동성이 있을 것입니다.
따라서 예를 들어 23:40에 시장이 마감되기 전에 모든 스탑리밋 주문을 제거하십시오.
그리고 스프레드 제어로 10.01 이후에 주문을 할 수 있습니다.

어제 발주된 정지 제한 주문이 있고 시장 개장 시 유동성이 없을 때 시장에 진입합니다.
한도를 100틱으로 설정한 이유는 무엇입니까? 입장 제한을 5틱으로 설정합니다.


 
Dmitry Fedoseev :

그것이 당신이 게으름에서 이상한 결론을 내리는 이유입니다. 나를 위한 것이 아니라 무슨 일이 일어나고 있는지 이해하기 위한 것입니다.

차트에서 마지막 가격은 12월 2일 23시 48분입니다. 로그에서 주문은 10일 중 3일에 트리거됩니다. 무엇입니까?

다시 한번 말하지만, 나는 그것이 필요하지 않으며 오랫동안 모든 것을 이해했습니다. 정말 이해가 안 되는 건지, 척 하는 건지.

12월 2일 23시 48분 차트에서 - 이것은 마지막 가격이 아니라 이것은 시간 척도이며 터미널은 이렇게 설계되었습니다 ))))))))))))


 
Sergey Chalyshev :

다시 한 번 반복합니다. 나는 이것을 필요로하지 않습니다. 모든 것이 오랫동안 나에게 분명했습니다. 정말 이해가 안 되는 건지, 척 하는 건지.

12월 2일 23시 48분 차트에서 - 이것은 마지막 가격이 아니라 이것은 시간 척도이며 터미널은 이렇게 설계되었습니다 ))))))))))))


매우 의미 있는 표현입니다. 23:48은 가격이 아닙니다.

알았어... 난 꺼져... 더 이상 네 주제에 간섭하지 않으려고 노력할게.

 
Dmitry Fedoseev :

매우 의미 있는 표현입니다. 23:48은 가격이 아닙니다.

알았어... 난 꺼져... 더 이상 네 주제에 간섭하지 않으려고 노력할게.

드미트리, 멀리 가지 말고 사업에 개입하십시오))

당신은 때때로 도움을 주었고 개인적으로 몇 가지 문제를 해결하는 데 도움을 주었습니다.

거래소 계정의 사용자 이름과 비밀번호를 알려주시겠습니까? 조건: 많이 병합하지 않고 암호를 변경하지 마십시오.

 
Sergey Chalyshev :

드미트리, 멀리 가지 말고 사업에 개입하십시오))

당신은 때때로 도움을 주었고 개인적으로 몇 가지 문제를 해결하는 데 도움을 주었습니다.

거래소 계정의 로그인과 비밀번호를 알려주시겠습니까? 조건: 많이 병합하지 않고 암호를 변경하지 마십시오.

응. 테스터에서도 몇 가지 주문을 시도할 것입니다.

 
Dmitry Fedoseev :

응. 테스터에서도 몇 가지 주문을 시도할 것입니다.

개인소장으로 썼습니다

 
Sergey Chalyshev :

아무도 사용하지 않는 것 같다.

주문이 존재하지 않는 가격으로 개설됨:

확인하는 간단한 예:

 //+------------------------------------------------------------------+
//|                                               StopLimit_Test.mq5 |
//+------------------------------------------------------------------+
#include <Trade\Trade.mqh>
CTrade trade;

input int Deviation = 100 ;
//+------------------------------------------------------------------+
void OnTick ()
  {
   MqlTick tick;
   SymbolInfoTick ( _Symbol ,tick);
   trade.SetTypeFilling( ORDER_FILLING_RETURN );
   double ticksise= SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE );

   if ( OrdersTotal ()== 0 )
      trade.OrderOpen(
         _Symbol ,                       // символ
         ORDER_TYPE_BUY_STOP_LIMIT ,     // тип ордера
         1.0 ,                           // объем ордера
         tick.ask+Deviation*ticksise,   // цена исполнения
         tick.ask+ 10 *ticksise,         // цена стоплимита
         0 ,                             // цена stop loss
         0                              // цена take profit
      );
  }
//+------------------------------------------------------------------+

그러나 실제로 문제는 스탑 리밋과 리밋의 가격이 뒤섞여 있다는 점입니다. 사실, 먼저 limit_price 매개변수와 가격입니다. 따라서 바이 스톱 한도를 설정하면 가격 가격이 limit_price 가격보다 높아야 합니다. 그러나 견적의 코드에서는 반대로 첫 번째 트리거가 가까운 tick.ask+10*ticksise 가격에서 발생하고 베이라이트가 그 위쪽(시장 가격보다 높은) 어딘가에 나타나고 즉시 트리거됩니다.

하지만 테스터에서는 테스트 기간이 시작될 때 가격이 내려가서 스톱 리밋으로 확인해보니 이 코드가 잘 작동합니다.

 void OnTick ()
  {

   static int x= 0 ;
   
   if (x== 1 ) return ;
   
   x= 1 ;
  

   MqlTick tick;
   SymbolInfoTick ( _Symbol ,tick);
   trade.SetTypeFilling( ORDER_FILLING_RETURN );
   double ticksise= SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE );

   if ( OrdersTotal ()== 0 ){
       Comment ( GetTickCount (), " " ,ticksise);
      trade.OrderOpen(
         _Symbol ,                       // символ
         ORDER_TYPE_SELL_STOP_LIMIT ,     // тип ордера
         1.0 ,                           // объем ордера
         tick.bid- 100 *ticksise,   // цена исполнения
         tick.bid- 1000 *ticksise,         // цена стоплимита
         0 ,                             // цена stop loss
         0                              // цена take profit
      );
   }

  }

첫 번째 작업 후 한계가 나타납니다 ...

 
Dmitry Fedoseev :

그러나 실제로 문제는 무엇입니까? 스탑 리밋과 리밋 가격이 뒤섞여 있습니다 . 사실, 먼저 limit_price 매개변수와 가격입니다. 따라서 바이 스톱 한도를 설정 하면 가격 가격이 limit_price 가격보다 높아야 합니다 . 그러나 견적의 코드에서는 반대로 첫 번째 트리거가 가까운 tick.ask+10*ticksise 가격에서 발생하고 베이라이트가 그 위쪽(시장 가격보다 높은) 어딘가에 나타나고 즉시 트리거됩니다.

하지만 테스터에서는 테스트 기간이 시작될 때 가격이 내려가서 스톱 리밋으로 확인해보니 이 코드가 잘 작동합니다.

첫 번째 작업 후 한계가 나타납니다 ...

내 예에서는 혼란스러운 것이 없습니다. BuyLimit은 Ask보다 높으며 BuyLimit에 지정된 가격이 아니라 Ask에서 실행되어야 합니다.

전체 스레드를 다시 읽으십시오. 설명하는 데 지쳤습니다.

StopLimit 없이 Ask 위에 BuyLimit를 설정해 보십시오.

ORDER_TYPE_BUY_STOP_LIMITORDER_TYPE_BUY_LIMIT 로 바꾸세요.

BuyLimit은 Ask 가격에서 적절하게 작동하고 BuyStopLimit의 경우 BuyLimit에 지정된 가격에서 부적절하게 작동합니다.

 
Sergey Chalyshev :

내 예에서는 혼란스러운 것이 없습니다. BuyLimit은 Ask 위에 있으며 BuyLimit에 지정된 가격이 아니라 Ask에서 실행되어야 합니다.

전체 스레드를 다시 읽으십시오. 설명하는 데 지쳤습니다.

StopLimit 없이 Ask 위에 BuyLimit를 설정해 보십시오.

ORDER_TYPE_BUY_STOP_LIMITORDER_TYPE_BUY_LIMIT 로 바꾸세요.

BuyLimit은 Ask 가격에서 적절하게 작동하고 BuyStopLimit의 경우 BuyLimit에 지정된 가격에서 부적절하게 작동합니다.

이제 명확해졌습니다.

 

지정가 지정가 주문은 테스터 및 Forex에서 확인할 수 있습니다. "Execution" = Exchange로 설정하면 충분합니다.



나는 다음과 같이 매수 스톱 한도를 확인했습니다. 지정가 주문의 가격을 활성화 가격보다 더 나쁘게 설정했습니다. 활성화되면 시장(호가)에서 주문이 열렸습니다. 그래서 테스터의 기능이 작동하는 것 같습니다.