FORTS SL 및 TP

 

여기요!

N‌SL 및 TP를 사용하지 않음

설명 부탁드립니다.

C‌Top-loss 및 Take-Profit은 이미 기존 포지션에 설정되어 있습니다.

그리고‌이 매개변수를 배치되는 순서대로 설정할 수 있습니까, 즉 포지션이 아직 열려 있지 않은 경우?

주문에 매개변수를 설정할 수 있다면 시장가 주문에서 SL과 TP를 계산하는 방법( 포지션 가격 은 고정되어 있지 않음)은 무엇입니까?

 
prostotrader :

여기요!

N‌ST와 TP를 사용하지 않음

설명 부탁드립니다.

C‌Top-loss 및 Take-Profit은 이미 기존 포지션에 설정되어 있습니다.

그리고‌이 매개변수를 배치되는 순서대로 설정할 수 있습니까, 즉 포지션이 아직 열려 있지 않은 경우?

주문에 매개변수를 설정할 수 있다면 시장가 주문에서 SL과 TP를 계산하는 방법( 포지션 가격 은 고정되어 있지 않음)은 무엇입니까?


원하는대로 설정할 수 있으며 레벨은 서버에 저장됩니다. 동일한 서버에서 중지 실행을 거부할 수 있습니다 .
 
Sergey Chalyshev :

원하는대로 설정할 수 있으며 레벨은 서버에 저장됩니다. 동일한 서버에서 중지 실행을 거부할 수 있습니다 .


여기서도 서버 오류를 수신하는 것은 바람직하지 않습니다.

그래서 (확실히) 기존 위치에 설치하는 것이 더 낫습니까?

 
prostotrader :


여기서도 서버 오류를 수신하는 것은 바람직하지 않습니다.

그래서 (확실히) 기존 위치에 설치하는 것이 더 낫습니까?


정지는 일반적으로 제한을 설정하지 않는 것이 좋습니다.
 
prostotrader :


여기서도 서버 오류를 수신하는 것은 바람직하지 않습니다.

그래서 (확실히) 기존 위치에 설치하는 것이 더 낫습니까?

나는 교환 성능에 대해 문맹이지만 여전히. 일반적으로 이미 존재하는 위치에 주문하는 것이 더 낫습니다. 미끄러짐이 있는 경우 레벨은 설정한 크기와 정확히 일치합니다. 직접 확인하지는 않았지만 SL과 TP가 없으면 주문이 더 빨리 실행된다는 것을 읽었습니다. 이것이 사실이라면 먼저 포지션이 열릴 때까지 기다렸다가 작업하는 것이 좋습니다.
 
Sergey Chalyshev :

정지는 일반적으로 제한을 설정하지 않는 것이 좋습니다.


그렇기 때문에 한 번도 사용해 본 적이 없습니다.

아니요, 지금 CFOROrder 클래스를 작성 중이며 SL 및 TP를 설정하는 기능이 있어야 합니다.

D 추가됨

POSITION_SL


POSITION_TP

이것이 최소 수준입니까?


 
Vitaly Muzichenko :
나는 교환 성능에 대해 문맹이지만 여전히. 일반적으로 이미 존재하는 위치에 주문하는 것이 더 낫습니다. 미끄러짐이 있는 경우 레벨은 설정한 크기와 정확히 일치합니다. 직접 확인하지는 않았지만 SL과 TP가 없으면 주문이 더 빨리 실행된다는 것을 읽었습니다. 이것이 사실이라면 먼저 포지션이 열릴 때까지 기다렸다가 작업하는 것이 좋습니다.

감사해요
 
prostotrader :

감사해요
당신에게 어렵지 않다면 사전 설정 주문의 유무에 관계없이 실행 속도 를 개인적으로 확인할 수 있으므로 " SL 및 TP가 없으면 주문이 더 빨리 실행된다 "는 사실을 증명하거나 반증하여 커뮤니티에 실제 그림을 제공합니다. - 누군가에게는 유용할 것 같아요.
 
Vitaly Muzichenko :
나는 교환 성능에 대해 문맹이지만 여전히. 일반적으로 이미 존재하는 위치에 주문하는 것이 더 낫습니다. 미끄러짐이 있는 경우 레벨은 설정한 크기와 정확히 일치합니다. 직접 확인하지는 않았지만 SL과 TP가 없으면 주문이 더 빨리 실행된다는 것을 읽었습니다. 이것이 사실이라면 먼저 포지션이 열릴 때까지 기다렸다가 작업하는 것이 좋습니다.


중지 주문 자체는 서버에 저장되고 서버 자체가 조건에 따라 주문을 보내기 때문에 매우 빠르게 작동합니다. 동시에 서버에 대한 ping은 시장에서 닫았을 때와 비교하여 저장됩니다.

그러나 리미터는 더 안정적이며 속도는 무엇과도 비교할 수 없습니다(대기 시간 = 0).

속도를 물리적으로 측정한 것은 아니고, 가격이 아직 차트의 고점에 도달하지 않은 것이 눈으로 뻔히 보이고, 이미 거래가 완료되어 내역에 표시되고, 그 후 가격과 거래가 시작됩니다. 차트에 그려집니다.

 
prostotrader :


그렇기 때문에 한 번도 사용해 본 적이 없습니다.

아니요, 지금 CFOROrder 클래스를 작성 중이며 SL 및 TP를 설정하는 기능이 있어야 합니다.

추가됨

POSITION_SL


POSITION_TP

이것이 최소 수준입니까?



서버에 저장되어 있는 목발 없이 함수를 작성해 보면 어떨까요?

제한을 두고 즉시 작성하십시오. 글쎄, 또는 최소한 한계가있는 TP와 SL이 밝혀졌습니다.

 
Sergey Chalyshev :


서버에 저장되어 있는 목발 없이 함수를 작성해 보면 어떨까요?

제한을 두고 즉시 작성하십시오. 글쎄, 또는 최소한 한계가있는 TP와 SL이 밝혀졌습니다.


하지만 수업 코드를 게시할 수 있기 때문입니다.

나는 필요하지 않지만 초보자에게는 필요할 수 있습니다.

void CFORTSOrder::SetSlTp( const string a_symbol, const double a_sl= 0 , const double a_tp= 0 )
{
   if ( PositionSelect (a_symbol))
  {
     ulong pos_ticket = ulong ( PositionGetInteger ( POSITION_TICKET ));
     ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE ( PositionGetInteger ( POSITION_TYPE ));
     double sl_level = PositionGetDouble ( POSITION_SL );
     double tp_level = PositionGetDouble ( POSITION_TP );
     MqlTradeRequest request = { 0 };
     MqlTradeResult   result  = { 0 };
    mem_magic = magic_storage + 1 ;
     if (magic_storage >= (magic_number + 65530 )) mem_magic = magic_number;
    request.symbol = a_symbol;
    request.action = TRADE_ACTION_SLTP ;
    request.comment = "Установка SL/TP" ;
    request.magic = mem_magic;
    request.position = pos_ticket;
     switch (pos_type)
    {
       case POSITION_TYPE_BUY :
         if (a_sl == 0 )
        {
          request.sl = sl_level;
        }
         else
         if (a_sl <= sl_level)
        {
          request.sl = a_sl;
        }
         else request.sl = sl_level;
         if (a_tp == 0 )
        {
          request.tp = tp_level;
        }
         else
         if (a_tp >= tp_level)
        {
          request.tp = a_tp;
        }
         else request.tp = tp_level;
       break ;
       case POSITION_TYPE_SELL :
         if (a_sl == 0 )
        {
          request.sl = sl_level;
        }
         else
         if (a_sl >= sl_level)
        {
          request.sl = a_sl;
        }
         else request.sl = sl_level;
         if (a_tp == 0 )
        {
          request.tp = tp_level;
        }
         else
         if (a_tp <= tp_level)
        {
          request.tp = a_tp;
        }
         else request.tp = tp_level;
       break ;
    }
     if ( OrderSend (request, result))
    {
       if (result.retcode == TRADE_RETCODE_DONE )
      {
        magic_storage = mem_magic;
         Print ( __FUNCTION__ , ": SL и/или TP установлен." );
      }
    }
     else Print ( __FUNCTION__ , ": SL и/или TP не установлен." );
  }
}

사유: