선물 거래는 매수 또는 매도가가 아닌 최종 가격에서 시작됩니다. 이건 괜찮아? - 페이지 2

 

RomanAlexey Viktorov , 도움을 주셔서 감사합니다.

거래를 시작한 후 실제와 계산된 TP와 SL 거리가 일치하는지 간단히 확인하기로 했습니다. 그리고 일치하지 않으면 OnTrade() 함수에서 재설정하려고 합니다. 결과적으로 실제 시가와 TP 및 SL 가격 사이의 거리가 정확해집니다. 유일한 놀라운 점은 이러한 미끄러짐이 이 악기의 표준이라는 것입니다. 코드는 거래가 열릴 때마다 거의 실행됩니다.

 //+------------------------------------------------------------------+
//|                          OnTrade()                               |
//+------------------------------------------------------------------+
void OnTrade ()
  {
   if ( HistoryDealSelect (last_trade_ticket))
     {
       // сделка выделилась успешно
       ulong pos_id = HistoryDealGetInteger (last_trade_ticket, DEAL_POSITION_ID );
       // идентификатор позиции сохранён
       if ( HistorySelectByPosition (pos_id) && HistoryDealsTotal () == 1 )
        {
         // история позиции сформирована
         // позиция состоит из одной сделки
         if ( PositionSelectByTicket (pos_id))
           {
             // позиция выделена
             string symbol = PositionGetString ( POSITION_SYMBOL );
             double pos_op = PositionGetDouble ( POSITION_PRICE_OPEN );
             double pos_tp = NormalizeDouble ( PositionGetDouble ( POSITION_TP ), _Digits );
             double pos_sl = NormalizeDouble ( PositionGetDouble ( POSITION_SL ), _Digits );
             long pos_type = PositionGetInteger ( POSITION_TYPE );
             long pos_mag = PositionGetInteger ( POSITION_MAGIC );
             // параметры позиции получены
             int tp = int ( GlobalVariableGet (global_tp));
             int sl = int ( GlobalVariableGet (global_sl));
             double calc_tp_price = 0 ;
             double calc_sl_price = 0 ;
             if (pos_type == POSITION_TYPE_BUY )
              {
               // покупка
               // расчёт корректных тп и сл
               if (tp > 0 )
                  calc_tp_price = NormalizeDouble (pos_op + tp * _Point , _Digits );
               if (sl > 0 )
                  calc_sl_price = NormalizeDouble (pos_op - sl * _Point , _Digits );
              }
             if (pos_type == POSITION_TYPE_SELL )
              {
               // продажа
               // расчёт корректных тп и сл
               if (tp > 0 )
                  calc_tp_price = NormalizeDouble (pos_op - tp * _Point , _Digits );
               if (sl > 0 )
                  calc_sl_price = NormalizeDouble (pos_op + sl * _Point , _Digits );
              }
             if (pos_tp != calc_tp_price || pos_sl != calc_sl_price)
              {
               // обнаружен факт проскальзывания
               // исправить тейк и стоп
               MqlTradeRequest request;
               MqlTradeResult result;
               ZeroMemory (request);
               ZeroMemory (result);
               request.action = TRADE_ACTION_SLTP ;
               request.position = pos_id;
               request.symbol = symbol;
               request.magic = pos_mag;
               request.tp = calc_tp_price;
               request.sl = calc_sl_price;
               if (! OrderSend (request, result) || result.retcode != TRADE_RETCODE_DONE )
                   Print ( "Ticket:" , pos_id, " Error: " , ResultRetcode(result));
              }
           }
        }
     }
   last_trade_ticket = 0 ;
  }
//+------------------------------------------------------------------+
 
부분적인 주제. 삭제하지마시고 감사합니다. 차익 거래를 시도했을 때 많은 질문이 나타났습니다.
 
Oleg Remizov :

RomanAlexey Viktorov , 도움을 주셔서 감사합니다.

거래를 시작한 후 실제와 계산된 TP와 SL 거리가 일치하는지 간단히 확인하기로 했습니다. 그리고 일치하지 않으면 OnTrade() 함수에서 재설정하려고 합니다. 결과적으로 실제 시가와 TP 및 SL 가격 사이의 거리가 정확해집니다. 유일한 놀라운 점은 이러한 미끄러짐이 이 악기의 표준이라는 것입니다. 코드는 거래가 열릴 때마다 거의 실행됩니다.

시장이 아닌 지정가 주문으로 거래를 시도하되, 매수할 때 가장 좋은 가격을 지정하거나 매도할 때 가장 좋은 입찰가를 지정하십시오. 물론 이 시간 동안 Ask 또는 Bid가 변경되지 않는 한 주문은 명시된 가격으로 즉시 실행되어야 합니다.

 
Vitalii Ananev :

시장이 아닌 지정가 주문으로 거래를 시도하되, 매수할 때 가장 좋은 가격을 지정하거나 매도할 때 가장 좋은 입찰가를 지정하십시오. 물론 이 시간 동안 Ask 또는 Bid가 변경되지 않는 한 주문은 명시된 가격으로 즉시 실행되어야 합니다.

제한이 잘 실행됩니다. 때로는 응용 프로그램보다 더 나은 가격으로.

 
Oleg Remizov :

.... 때로는 응용 프로그램보다 더 나은 가격에.

그래서 가격이 바뀌었습니다.

인생 꿀팁 하나 알려드릴게요 :) 시장가 주문으로 오픈하듯이 지정가 주문으로 포지션을 오픈할 수 있지만 동시에 슬리피지 정도를 조절할 수 있습니다. Forex 거래자는 입찰가보다 낮은 구매 제한 주문 을 하는 데 사용됩니다. 그리고 매도 한도는 매도호가보다 높습니다. 거래소에서 지정가 주문을 통해 매도호가 이상으로 매수할 수 있습니다. 이 경우 가장 가까운 최적의 가격으로 즉시 집행됩니다. 예를 들어 유리잔의 매도호가는 5,8,10,20,35입니다. 10의 가격으로 구매하기 위해 지정가 주문을 보내면 5의 가격으로 거래가 시작됩니다. 주문이 거래소에 가는 동안 가격이 변경되고 가장 좋은 가격이 20의 가격이면 주문이 실행되지 않습니다. 그러나 10의 가격으로 주문장에 나타날 것입니다. 따라서 우리는 가능한 미끄러짐의 양을 제한했습니다.

 
Vitalii Ananev :

그래서 가격이 바뀌었습니다.

인생 꿀팁 하나 알려드릴게요 :) 시장가 주문으로 오픈하듯이 지정가 주문으로 포지션을 오픈할 수 있지만 동시에 슬리피지 정도를 조절할 수 있습니다. Forex 거래자는 입찰가보다 낮은 구매 제한 주문 을 배치하는 데 사용됩니다. 그리고 매도 한도는 매도호가보다 높습니다. 거래소에서 지정가 주문을 통해 매도호가 이상으로 매수할 수 있습니다. 이 경우 가장 가까운 최적의 가격으로 즉시 집행됩니다. 예를 들어 유리잔의 매도호가는 5,8,10,20,35입니다. 10의 가격으로 구매하기 위해 지정가 주문을 보내면 5의 가격으로 거래가 시작됩니다. 주문이 거래소에 가는 동안 가격이 변경되고 가장 좋은 가격이 20의 가격이면 주문이 실행되지 않습니다. 그러나 10의 가격으로 주문장에 나타날 것입니다. 따라서 우리는 가능한 미끄러짐의 양을 제한했습니다.

이것은 라이프 핵이 아니라 교환 실행의 원칙입니다. ))
그래서 나는 Oleg에게 교환 주문이 어떻게 작동하는지 알아내라고 이전에 말했습니다.
그들의 작업 원리를 이해하면 거래의 품질을 한 차원 높일 수 있습니다.

여기 Quik에서 일하는 사람들을 위한 꿀팁이 있습니다.
Quik에서는 하루 동안 한 기기에 대해 다방향 위치를 열 수 있습니다.
여기에 인생 핵이 있습니다))
 
Roman :

이것은 라이프 핵이 아니라 교환 실행의 원칙입니다. ))
그래서 나는 Oleg에게 교환 주문이 어떻게 작동하는지 알아내라고 이전에 말했습니다.
그들의 작업 원리를 이해하면 거래의 품질을 한 차원 높일 수 있습니다.

여기 Quik에서 일하는 사람들을 위한 꿀팁이 있습니다.
Quik에서는 하루 동안 한 기기에 대해 다방향 위치를 열 수 있습니다.
여기에 인생 핵이 있습니다))

그래서 마지막에 인생 꿀팁에 대한 농담으로 스마일리를 썼습니다.

하지만 퀵에서 다방향 포지션은 몰랐습니다. 교환이 허용합니까?

 
Vitalii Ananev :

그래서 마지막에 인생 꿀팁에 대한 농담으로 스마일리를 썼습니다.

하지만 퀵에서 다방향 포지션은 몰랐습니다. 교환이 허용합니까?

나는 당신이 이것을 하도록 허락한 사람이 누구인지 모릅니다)) 교환 또는 빠른 서버.
양방향 위치는 주요 청산 때까지 유지될 수 있으며, 동일한 볼륨으로 청산 시 청산됩니다.
즉, 2 롱, 1 숏이면 클리어 후 1 롱이 남습니다.
사실 하루 안에 변동으로 손실을 고칠 수 있지만 깨닫지 못하고 반등을 예상하면 손실을 줄이십시오.
반전이 있다면 거래는 플러스로 간주될 수 있습니다. 일반적으로 숙련된 손에 도구가 적합합니다.

 
Roman :

나는 당신이 이것을 하도록 허락한 사람이 누구인지 모릅니다)) 교환 또는 빠른 서버.
양방향 위치는 주요 청산 때까지 유지될 수 있으며, 동일한 볼륨으로 청산 시 청산됩니다.
즉, 2 롱, 1 숏이면 클리어 후 1 롱이 남습니다.
사실 하루 안에 변동으로 손실을 고칠 수 있지만 깨닫지 못하고 반등을 예상하면 손실을 줄이십시오.
반전이 있는 경우 거래를 플러스로 전환할 수 있습니다. 일반적으로 유능한 손에 도구가 적합합니다.

분명한. 나는 장중 거래를 하지 않고 단지 길고 오랫동안 거래합니다.

 
Oleg Remizov :

거래 수단 사양:

어떤 플랫폼에서 거래되나요?