FORTS: 초보자를 돕기 위해 - 페이지 7

 
TYRBO :
글쎄, 누가 그것을 올바르게하는 방법을 스레드에게 알려줄 것입니까?
도움말을 읽기에 너무 게으르신가요?
 
TYRBO :
글쎄, 누가 그것을 올바르게하는 방법을 스레드에게 알려줄 것입니까?

요청에 stoplimit 가격이 누락되었습니다.

   double     stoplimit;         // Уровень StopLimit ордера

SRC(상단의 버튼)를 통해 코드를 붙여넣습니다.

 
Sergey Chalyshev :

요청에 stoplimit 가격이 누락되었습니다.

   double     stoplimit;         // Уровень StopLimit ордера

SRC(상단의 버튼)를 통해 코드를 붙여넣습니다.

당신은 정말 도움이됩니다.

그 남자는 인증서를 볼 필요가 있다고 생각조차하지 않았습니다 ...

 
prostotrader :

당신은 정말 도움이됩니다.

그 남자는 인증서를 볼 필요가 있다고 생각조차하지 않았습니다 ...

글쎄, 당신이 코로 다른 사람을 찌를 수있는 모든 것을 겪었을 때
 
Sergey Chalyshev :

요청에 stoplimit 가격이 누락되었습니다.

   double     stoplimit;         // Уровень StopLimit ордера

SRC(상단의 버튼)를 통해 코드를 붙여넣습니다.

Sergey 정말 감사합니다.
 
Sergey Chalyshev :

요청에 stoplimit 가격이 누락되었습니다.

   double     stoplimit;         // Уровень StopLimit ордера

SRC(상단의 버튼)를 통해 코드를 붙여넣습니다.

흥미로운 점은 실생활에서 매수 스톱 리밋이나 매도 스톱 리밋은 F9를 통해 설정하면 실행되고, 가격이 통과하면 시장에 내놓고, 테스터에서는 단순히 가격이 통과하면 제한을 만들고, 그것이 그것으로 돌아올 때, 즉 testish에 따르지 않는 고문을 실행할 때

파일:
1.JPG  147 kb
 

모두들 안녕.

나는 그런 문제가 있었다. 유리를 켜면 모든 것이 정상인 것처럼 보이지만 시간이 지나면 부적절하게 작동하기 시작합니다. 그런 다음 차트가 위 또는 아래로 날아간 다음 Depth of Market이 업데이트를 완전히 중지하고 닫았다가 다시 열 때까지 중단되었습니다. 무엇을 할까요? 도와주세요, 제발.

 

선물 코드를 가져오는 함수

 //-------------------------------------------------------------------+
// Split string function                                             |
//+------------------------------------------------------------------+
string SplitString( const string a_str, int &a_month, int &a_year)
{
 int str_size= StringLen (a_str);
 int str_tire= StringFind (a_str, "-" );
 int str_tochka= StringFind (a_str, "." , str_tire);
 if ((str_tire> 0 ) && (str_tochka> 0 ) &&(str_size > 0 ))
 {
   a_month= int ( StringToInteger ( StringSubstr (a_str,str_tire+ 1 ,str_tochka-str_tire- 1 )));
   a_year = int ( StringToInteger ( StringSubstr (a_str,str_tochka+ 1 ,str_size-str_tochka- 1 )));
   if ((a_month > 0 ) && (a_year > 0 )) return ( StringSubstr (a_str, 0 , str_tire));
  }
 return ( "" );
}
//+------------------------------------------------------------------+
//| Expert Get prefix function                                       |
//+------------------------------------------------------------------+
string GetPrefix( const string a_name)
{
//-- indexes ---
   if (a_name == "MIX" ) return ( "MX" ); else
   if (a_name == "MXI" ) return ( "MM" ); else
   if (a_name == "RTS" ) return ( "RI" ); else
   if (a_name == "RTSS" ) return ( "RS" ); else
   if (a_name == "ALSI" ) return ( "4B" ); else
   if (a_name == "RVI" ) return ( "VI" ); else
//--- SPOT ---  
   if (a_name == "AFLT" ) return ( "AF" ); else
   if (a_name == "ALRS" ) return ( "AL" ); else
   if (a_name == "CHMF" ) return ( "CH" ); else
   if (a_name == "FEES" ) return ( "FS" ); else
   if (a_name == "GAZR" ) return ( "GZ" ); else
   if (a_name == "GMKN" ) return ( "GK" ); else
   if (a_name == "HYDR" ) return ( "HY" ); else
   if (a_name == "LKOH" ) return ( "LK" ); else
   if (a_name == "MGNT" ) return ( "MN" ); else
   if (a_name == "MOEX" ) return ( "ME" ); else
   if (a_name == "MTSI" ) return ( "MT" ); else
   if (a_name == "NLMK" ) return ( "NM" ); else
   if (a_name == "NOTK" ) return ( "NK" ); else
   if (a_name == "ROSN" ) return ( "RN" ); else
   if (a_name == "RTKM" ) return ( "RT" ); else
   if (a_name == "SBPR" ) return ( "SP" ); else
   if (a_name == "SBRF" ) return ( "SR" ); else
   if (a_name == "SNGP" ) return ( "SG" ); else
   if (a_name == "SNGR" ) return ( "SR" ); else
   if (a_name == "TATN" ) return ( "TT" ); else
   if (a_name == "TRNF" ) return ( "TN" ); else
   if (a_name == "VTBR" ) return ( "VB" ); else
   if (a_name == "MAGN" ) return ( "MG" ); else
   if (a_name == "PLZL" ) return ( "PL" ); else
   if (a_name == "YNDF" ) return ( "YN" ); else
   if (a_name == "AFKS" ) return ( "AK" ); else
   if (a_name == "IRAO" ) return ( "IR" ); else
   if (a_name == "POLY" ) return ( "PO" ); else
   if (a_name == "TCSI" ) return ( "TC" ); else
   if (a_name == "FIVE" ) return ( "FV" ); else
   if (a_name == "MAIL" ) return ( "ML" ); else
   if (a_name == "GBMW" ) return ( "BW" ); else
   if (a_name == "GDAI" ) return ( "DM" ); else
   if (a_name == "GDBK" ) return ( "GB" ); else
   if (a_name == "GSIE" ) return ( "SM" ); else
   if (a_name == "GVW3" ) return ( "VM" ); else
//--- procent ---  
   if (a_name == "OF10" ) return ( "OX" ); else
   if (a_name == "OF15" ) return ( "OV" ); else
   if (a_name == "OFZ2" ) return ( "O2" ); else
   if (a_name == "OFZ4" ) return ( "O4" ); else
   if (a_name == "OFZ6" ) return ( "O6" ); else
   if (a_name == "MOPR" ) return ( "MP" ); else
   if (a_name == "RUON" ) return ( "RR" ); else
   if (a_name == "1MFR" ) return ( "MF" ); else
   if (a_name == "1MDR" ) return ( "DF" ); else
//--- currency ---  
   if (a_name == "AUDU" ) return ( "AU" ); else
   if (a_name == "CY" ) return ( "CY" ); else
   if (a_name == "ED" ) return ( "ED" ); else
   if (a_name == "Eu" ) return ( "Eu" ); else
   if (a_name == "GBPU" ) return ( "GU" ); else
   if (a_name == "Si" ) return ( "Si" ); else
   if (a_name == "UCAD" ) return ( "CA" ); else
   if (a_name == "UCHF" ) return ( "CF" ); else
   if (a_name == "UJPY" ) return ( "JP" ); else
   if (a_name == "UTRY" ) return ( "TR" ); else
   if (a_name == "UINR" ) return ( "IN" ); else
   if (a_name == "UUAH" ) return ( "UU" ); else
//--- commodity ---  
   if (a_name == "BR" ) return ( "BR" ); else
   if (a_name == "CU" ) return ( "CU" ); else
   if (a_name == "GOLD" ) return ( "GD" ); else
   if (a_name == "PLD" ) return ( "PD" ); else
   if (a_name == "PLT" ) return ( "PT" ); else
   if (a_name == "SILV" ) return ( "SV" ); else
   if (a_name == "SUGR" ) return ( "SA" ); else
   if (a_name == "SLV" ) return ( "SL" ); else
   if (a_name == "ALMN" ) return ( "AM" ); else
   if (a_name == "CL" ) return ( "CL" ); else
   if (a_name == "Co" ) return ( "Co" ); else
   if (a_name == "GLD" ) return ( "GO" ); else
   if (a_name == "Nl" ) return ( "Nl" ); else
   if (a_name == "Zn" ) return ( "Zn" ); else
   if (a_name == "NG" ) return ( "NG" ); else
   if (a_name == "WH4" ) return ( "WH" ); else return ( "" );
}  
//+------------------------------------------------------------------+
//| Expert Get future code  function                                 |
//+------------------------------------------------------------------+
string GetFutCode( const string a_str)
{
   int a_month, a_year;
   string f_name = SplitString(a_str, a_month, a_year);
   if ( StringLen (f_name) > 0 )
  {
     string f_pref = GetPrefix(f_name);
     if (f_pref != "" )
    {
       if (a_month != 0 )
      {
         switch ( int (a_month))
        {
           case 1 :
            f_pref += "F" ; 
           break ;
           case 2 :
            f_pref += "G" ; 
           break ;
           case 3 :
            f_pref += "H" ; 
           break ;
           case 4 :
            f_pref += "J" ; 
           break ;
           case 5 :
            f_pref += "K" ; 
           break ;
           case 6 :
            f_pref += "M" ; 
           break ;
           case 7 :  
            f_pref += "N" ;
           break ;  
           case 8 :
            f_pref += "Q" ; 
           break ;
           case 9 :
            f_pref += "U" ; 
           break ;
           case 10 :
            f_pref += "V" ; 
           break ;
           case 11 : 
            f_pref += "X" ;
           break ;
           case 12 :
            f_pref += "Z" ; 
           break ;
        }
         if (a_year != 0 )
        {
           int res = a_year - int (( double (a_year)/ 10 )) * 10 ;
           return (f_pref += IntegerToString (res));
        }
      }
    }
  } 
   return ( "" );
}

용법

 string f_code = GetFutCode( Symbol ());
 
정말 감사합니다!
 

비밀이 아닌 경우 FORTS 에서 포지션을 청산하는 방법을 알려주십시오.
귀하를 기반으로 포지션을 마감하는 기능을 작성했지만 작동하지 않습니다. 잘못된 요청입니다.

이 주제에 대한 정보가 거의 없습니다.

 void ClosePosition( ulong & ord_ticket)
  {
   if (ord_ticket >   0 )
     {
       if ( PositionSelectByTicket (ord_ticket))
        {
         MqlTradeRequest request = { 0 };
         MqlTradeResult   result  = { 0 };
         //---
         request.action = TRADE_ACTION_CLOSE_BY ;
         request.order  = ord_ticket;
         request.position = PositionGetInteger ( POSITION_TICKET );
         request.position_by= PositionGetInteger ( POSITION_TICKET )+ 1 ;
         request.magic= 999999 ;
         request.volume= 1 ;
         request.deviation = 100 ;
         request.symbol = _Symbol ;
         request.type_filling = ORDER_FILLING_IOC ;
         request.type_time = ORDER_TIME_DAY ;
         //---
         if ( OrderSend (request, result))
           {

             if (result.retcode == TRADE_RETCODE_PLACED )
              {
               ord_ticket = result.order;
              }
             else
              {
               Print ( "RemovePosition: Удаление старой позиции не выполнено! Билет = " , ord_ticket);
              }
           }
         else
           {
             Print ( "RemovePosition: Ордер не отослан! Билет = " , ord_ticket);
           }
        }
     }
  }