실제 계정의 MetaTrader 5 - 페이지 2

 
IgorM :

당신은 오타를하지 않았다, 나는 SL과 TR에 대한 것이 아니라 가격을 말하는 것입니까? 그리고 시장가 주문 서버는 얼마에 열어야 하나요? 그가 나에게 준 가격이나 내가 그것을 내 머리에 가져간 가격으로?

양의 스프레드와 함께 즉시 서버에 가격을 보내지 않겠습니까 ;)

추신: USDJPY: 82.49; 82.51000000000001 ; 82.49 - 아마 지금 82.55?

다음은 정규화된 가격으로 요청을 보내는 예입니다.

 //+------------------------------------------------------------------+
//| Функция открытия ордеров                                         |
//+------------------------------------------------------------------+
void OpenOpders( string sym, ENUM_ORDER_TYPE type)
  {
   int n= 0 ;
   bool res=true;
   while (res)
     {
      n++;
       Alert (n, " - Попытка открыть ордер: " ,TypeToStr(type), " на  " ,sym, ", Лот - " ,Lots);
       double Bid= SymbolInfoDouble (sym, SYMBOL_BID );
       double Ask= SymbolInfoDouble (sym, SYMBOL_ASK );
       int digit=( int ) SymbolInfoInteger (sym, SYMBOL_DIGITS );
       double price= 0.0 ;

       if (type== ORDER_TYPE_BUY )price= NormalizeDouble (Ask,digit);
       else if (type== ORDER_TYPE_SELL )price= NormalizeDouble (Bid,digit);

      request.action       = TRADE_ACTION_DEAL ;
      request.symbol       = sym;
      request.volume       = Lots;
      request.price        = price;
      request.deviation    = Slip;
      request.type         = type;
      request.type_filling = ORDER_FILLING_AON ;

       OrderSend (request,result);

       switch (Fun_Error(result.retcode))
        {
         case 0 :res=false; break ;
         case 1 :res=true; break ;
         case 2 :res=false; break ;
        }
     }
  }
//+------------------------------------------------------------------+
//| Функция обработки ошибок                                         |
//+------------------------------------------------------------------+
int Fun_Error( int Error)
  {
   switch (Error)
     {
       case 10004 : Alert ( "Реквота" ); return ( 1 );
       case 10006 : Alert ( "Запрос отвергнут" ); Sleep ( 3000 ); return ( 1 );
       case 10007 : Alert ( "Запрос отменен трейдером" );Work=false; return ( 0 );
       case 10008 : Alert ( "Ордер размещен" ); return ( 2 );
       case 10009 : Alert ( "Заявка выполнена" ); return ( 2 );
       case 10010 : Alert ( "Заявка выполнена частично" ); return ( 2 );
       case 10011 : Alert ( "Ошибка обработки запроса" ); return ( 1 );
       case 10012 : Alert ( "Запрос отменен по истечению времени" ); return ( 1 );
       case 10013 : Alert ( "Неправильный запрос" );Work=false; return ( 0 );
       case 10014 : Alert ( "Неправильный объем в запросе" );Work=false; return ( 0 );
       case 10015 : Alert ( "Неправильная цена в запросе" );Work=false; return ( 0 );
       case 10016 : Alert ( "Неправильные стопы в запросе" );Work=false; return ( 0 );
       case 10017 : Alert ( "Торговля запрещена" );Work=false; return ( 0 );
       case 10018 : Alert ( "Рынок закрыт" );Work=false; return ( 0 );
       case 10019 : Alert ( "Нет достаточных денежных средств для выполнения запроса" );Work=false; return ( 0 );
       case 10020 : Alert ( "Цены изменились" ); return ( 1 );
       case 10021 : Alert ( "Отсутствуют котировки для обработки запроса" ); Sleep ( 3000 ); return ( 1 );
       case 10022 : Alert ( "Неверная дата истечения ордера в запросе" );Work=false; return ( 0 );
       case 10023 : Alert ( "Состояние ордера изменилось" ); return ( 2 );
       case 10024 : Alert ( "Слишком частые запросы" );Work=false; return ( 0 );
       case 10025 : Alert ( "В запросе нет изменений" ); Sleep ( 3000 ); return ( 1 );
       case 10026 : Alert ( "Автотрейдинг запрещен сервером" );Work=false; return ( 0 );
       case 10027 : Alert ( "Автотрейдинг запрещен клиентским терминалом" );Work=false; return ( 0 );
       case 10028 : Alert ( "Запрос заблокирован для обработки" ); return ( 2 );
       case 10029 : Alert ( "Ордер или позиция заморожены" ); return ( 2 );
       case 10030 : Alert ( "Указан неподдерживаемый тип исполнения ордера по остатку" );Work=false; return ( 0 );
       case 10031 : Alert ( "Нет соединения с торговым сервером" ); Sleep ( 3000 ); return ( 1 );
       case 10032 : Alert ( "Операция разрешена только для реальных счетов" );Work=false; return ( 0 );
       case 10033 : Alert ( "Достигнут лимит на количество отложенных ордеров" ); return ( 2 );
       case 10034 : Alert ( "Достигнут лимит на объем ордеров и позиций для данного символа" ); return ( 2 );
       default :     Alert ( "Ошибка № - " ,Error);Work=false; return ( 0 );
     }
  }
//+------------------------------------------------------------------+
//| Функция преоброзования типа ордера в строку                      |
//+------------------------------------------------------------------+
string TypeToStr( ENUM_ORDER_TYPE type)
  {
   switch (type)
     {
       case    ORDER_TYPE_BUY :   return ( "BUY" );
       case    ORDER_TYPE_SELL : return ( "SELL" );
     }
   return ( "" );
  }
 
Renat :
즉, "플랫폼의 습함"에 대한 논문은 어떤 식 으로든 확인되지 않았습니다.

나는 플랫폼의 습기에 대해 어디에서도 언급하지 않았습니다 - 내 게시물을 다시 읽으십시오

나는 주제에 대한 내 의견을 표현했습니다. 근거가 없다고 생각하십시오. 그러나 귀하의 회사는 MT5 플랫폼에서 중개인을 위한 소프트웨어를 판매하고 있다고 생각합니다.

세르게이1294 :

다음은 정규화된 가격으로 요청을 보내는 예입니다.

ATP, 그러나 나는 거래에 대해 약간 다른 생각과 주문을 열고 싶은 가격을 가지고 있습니다. 82.47 ,82.45999999999999 ,82.47

서버가 자체적으로 82.46이라는 가격을 "발명"할지 확신할 수 없습니다. 그는 로그에 그런 가격이 없었고 가격이 시장 가격이 아닌 경우-필요하지 않습니다-내 로그에 오류가 아닌 서버에 그대로 두십시오.

 
IgorM :

나는 플랫폼의 습기에 대해 어디에서도 언급하지 않았습니다 - 내 게시물을 다시 읽으십시오

나는 주제에 대한 내 의견을 표현했습니다. 근거가 없다고 생각하십시오. 그러나 귀하의 회사는 MT5 플랫폼에서 중개인을 위한 소프트웨어를 판매하고 있다고 생각합니다.

ATP, 그러나 나는 거래에 대해 약간 다른 생각과 주문을 열고 싶은 가격을 가지고 있습니다. 82.47 ,82.45999999999999 ,82.47

서버가 자체적으로 82.46이라는 가격을 "발명"할지 확신할 수 없습니다. 그는 로그에 그런 가격이 없었고 가격이 시장 가격이 아닌 경우-필요하지 않습니다-내 로그에 오류가 아닌 서버에 그대로 두십시오.

불행히도, 당신은 실수의 기본 산술과 컴퓨터에서의 표현에 대해 알지 못합니다. 이것이 "비정규화" 가격에 대한 오해의 뿌리입니다.

82.45999999(9)는 숫자 82.46의 이중 표현입니다.

 
IgorM :

나는 플랫폼의 습기에 대해 어디에서도 언급하지 않았습니다 - 내 게시물을 다시 읽으십시오

나는 주제에 대한 내 의견을 표현했습니다. 근거가 없다고 생각하십시오. 그러나 귀하의 회사는 MT5 플랫폼에서 중개인을 위한 소프트웨어를 판매하고 있다고 생각합니다.

ATP, 그러나 나는 거래에 대해 약간 다른 생각과 주문을 열고 싶은 가격을 가지고 있습니다. 82.47 ,82.45999999999999 ,82.47

서버가 자체적으로 82.46이라는 가격을 "발명"할지 확신할 수 없습니다. 그는 로그에 그런 가격이 없었고 가격이 시장 가격이 아닌 경우-필요하지 않습니다-내 로그에 오류가 아닌 서버에 그대로 두십시오.

가격에 대한 아이디어가 무엇인지 잘 이해하지 못했습니다. 일반적으로 인정되는 가격에는 소수점 이하 다섯 자리 또는 네 자리가 있으므로 이 표시에 대한 요청에서 가격을 줄여야 합니다. 그러면 실행은 문제가 되지 않지만 요청 중에 가격이 변경된 경우 정규화가 도움이 되지 않으며 재견적을 받게 되며 새 가격으로 새 요청을 보내야 합니다.
 
Renat :

불행히도, 당신은 실수의 기본 산술과 컴퓨터에서의 표현에 대해 알지 못합니다. 이것이 "비정규화" 가격에 대한 오해의 뿌리입니다.

82.45999999(9)는 숫자 82.46의 이중 표현입니다.

좋아, 나는 아마도 내가 이미 잊어버린 자료를 다시 읽을 시간을 찾을 것이다. 그러한 가격(82.45999999(9))이 시장 주문을 열기 위해 거래 서버에서 수락될 것입니까?

sergey1294 개발자가 기성품 예제와 클래스를 제공했음을 유의하십시오. 최소한 개발자가 제공한 CTrade 클래스에는 MQL5 Reference / Trade Functions / OrderSend의 예제와 같이 NormalizeDouble() 함수가 없습니다.

소스에서 특정 예제를 읽으면 잘못된 프로그램을 발명하고 처음에 작성하지 않을 것입니다. MT4 도움말에서 OrderSend() 예제도 가격 정규화를 포함하지 않습니다.

 
IgorM :

좋아, 나는 아마도 내가 이미 잊어버린 자료를 다시 읽을 시간을 찾을 것이다. 그러한 가격(82.45999999(9))이 시장 주문을 열기 위해 거래 서버에서 수락될 것입니까?

예, 틱 스트림의 올바른/기존 가격인 경우입니다.


sergey1294 개발자가 기성품 예제와 클래스를 제공했음을 유의하십시오. 최소한 개발자가 제공한 CTrade 클래스에는 MQL5 Reference / Trade Functions / OrderSend의 예제와 같이 NormalizeDouble() 함수가 없습니다.

소스에서 특정 예제를 읽으면 잘못된 프로그램을 발명하고 처음에 작성하지 않을 것입니다.

일반 Bid 및 Ask를 사용하여 거래를 하면 항상 정상화됩니다. 그러나 계산된 가격(예: 스탑)은 거래 요청을 보내기 전에 이미 정규화되어야 합니다.

표준 CTrade의 방법은 강제 수신 주문 가격을 정규화하지 않습니다. 이는 절대적으로 허용되지 않기 때문입니다. 위 수준에서 선언한 가격을 대체할 수 없습니다.

 
Renat :
예, 틱 스트림의 올바른/기존 가격인 경우입니다.


일반 Bid 및 Ask를 사용하여 거래 를 수행하면 항상 정규화됩니다. 그러나 계산된 가격(예: 스탑)은 거래 요청을 보내기 전에 이미 정규화되어야 합니다.

표준 CTrade의 방법은 강제 수신 주문 가격을 정규화하지 않습니다. 이는 절대적으로 허용되지 않기 때문입니다. 위 수준에서 선언한 가격을 대체할 수 없습니다.

고마워! 업무에 사용하지 마시고, MT5 참고서에 여러 번 언급하여 오해가 없도록 하고 즉시 도움을 보내서 읽을 수 있도록 하세요. :)

추신: SL 및 TR에 대해 알고 있지만 도움말에서 읽거나 기억하지 못하거나 포럼에서 발견한 내용이 기억나지 않습니다.

 
IgorM :

고마워! 업무용으로 가져가지 말고 MT5 참고서에 여러 번 언급하여 오해가 없도록 하고 즉시 도움을 보내서 읽을 수 있도록 하세요 :)

예, 지속적으로 문서를 업데이트하고 설명을 추가하고 있습니다.
 
IgorM :

나는 이 포럼을 지속적으로 읽고 있으며 매우 자주 귀하의 사려 깊고 유익한 게시물에 놀랐습니다.)

주제별로 데모 계정의 견적이 마이크로 리얼과 다른지 의심 스럽지만 관리자가 언급 한 회사의 데모 계정에는 매우 자주 비정규화 된 가격이 있으며 강한 움직임이 있습니다. 주문을 열고 닫을 수 없습니다 그들, 나는 질서를보고 싶습니다 나중에 일어날 일 MT5를 비난하지 마십시오

맛과 색상에 대한 동지가 없습니다(민속적 지혜) - "비정규화된 가격"은 누군가가 일하는 것을 방해하지만 개인적으로 나는 이것을 큰 문제로 생각하지 않습니다(오랫동안 otlozhniks를 사용해 왔으며 이러한 가격은 나에게 큰 문제가 아닙니다). 그러나 나에게 문제 는 테스터 또는 기타 유사한 순간에 OnTimer() 를 작동하지 않으려는 것과 같은 것입니다.

그러나 이러한 입력에도 불구하고 센트 계정(예금 $200)에서 거래할 터미널을 선택할 때 저는 개인적으로 MT5를 선택합니다.

현재의 모든 결함에 대해!

 
Interesting :

맛과 색상에 대한 동지가 없습니다(민속적 지혜) - "비정규화된 가격"은 누군가가 일하는 것을 방해하지만 개인적으로 나는 이것을 큰 문제로 생각하지 않습니다(오랫동안 otlozhniks를 사용해 왔으며 이러한 가격은 나에게 큰 문제가 아닙니다). 그러나 나에게 문제는 테스터 또는 기타 유사한 순간에 OnTimer()를 작동 하지 않으려는 것과 같은 것입니다.

우리의 이 오류는 실패한 최적화의 결과였으며 릴리스된 358 빌드에서 이미 수정되었습니다.