시장에 게시된 Expert Advisors에서 최소 스톱을 확인합니다. - 페이지 16

 
Vladislav Andruschenko :

스프레드를 고려한 경우 스프레드는 8포인트였습니다. + 최소 정지 18=26점

여기 27에서는 모든 것이 정상입니다.

또한 사람이 100포인트의 손절매를 해야 하는 경우 100포인트를 잃게 되므로 ASK 가격에서 BUY하려면 100포인트를 계산해야 합니다.

및 BID의 CELL에 대해 각각.

나는 SL을 어디에 둘 것인지 말하지 않았다. 확인할 때 사용하는 가격을 말씀드렸습니다.
 
Andrey Khatimlianskii :
나는 SL을 어디에 둘 것인지 말하지 않았다. 확인할 때 사용하는 가격을 말씀드렸습니다.
고맙습니다. 이 옵션도 중요합니다.
 
Taras Slobodyanik :

그래서 추측하지 않는 이유는 무엇입니까? 브로커가 잘못된 중지 수준을 제공하는 경우? %)

... 모든 검사가 끝나면 최소 들여 쓰기 를 찾기 위해 이미 추측해야합니다.

레이아웃에서 추측할 수 없습니다. 모든 것을 알아야 합니다. 미리. 단 한 번의 실수도 없이 말이다. 서버의 오류는 오류가 아니라고 생각하지만. 그리고 경고.
 

나는 시장에서 고문을 판매 한 경험이 없지만 모든 의견을 읽은 후 5 센트를 삽입합니다.

메뉴에서 여러 옵션을 시도할 수 있습니다.

옵션 1, 기본값으로 설정합니다. 이것은 최소 정지가 MODE_STOPLEVEL을 완전히 정의하는 경우입니다. 주문과 함께 각 작업을 수행하기 전에 새로운 STOPLEVEL 을 신청하십시오 .

옵션 2, MODE_STOPLEVEL == 0이면 레벨 스프레드를 중지합니다.

3 옵션 스톱 레벨 또는 일부 계수에 스프레드를 곱한 값을 수동으로 설정합니다.

컨트롤에 들어가야 합니다. EA가 테스트 중이거나 최적화된 경우 정지 수준은 스프레드보다 작을 수 없습니다. 손절매 = 1을 포함하여 모든 스트레스 테스트로 시장을 통과할 수 있을 것이라고 생각합니다.

 
Dmytro Zelenskyy :

나는 시장에서 고문을 판매 한 경험이 없지만 모든 의견을 읽은 후 5 센트를 삽입합니다.

메뉴에서 여러 옵션을 시도할 수 있습니다.

옵션 1, 기본값으로 설정합니다. 이것은 최소 정지가 MODE_STOPLEVEL을 완전히 정의하는 경우입니다. 주문과 함께 각 작업을 수행하기 전에 새로운 STOPLEVEL 을 신청하십시오 .

옵션 2, MODE_STOPLEVEL == 0이면 레벨 스프레드를 중지합니다.

3 옵션 스톱 레벨 또는 일부 계수에 스프레드를 곱한 값을 수동으로 설정합니다.

컨트롤에 들어가야 합니다. EA가 테스트 중이거나 최적화된 경우 정지 수준은 스프레드보다 작을 수 없습니다. 손절매 = 1을 포함하여 모든 스트레스 테스트로 시장을 통과할 수 있을 것이라고 생각합니다.

불행하게도.

시장에서는 모든 것이 자동으로 진행되어야 합니다.

이제 금에 대한 새로운 농담이 있습니다. 따옴표는 3자리이지만 마지막 기호는 반올림해야 합니다. 즉, 마지막 숫자는 0이어야 합니다.

따라서 반올림할 때 수학 규칙에 따라 반올림되며 최소 정지 규칙을 우회할 수 있는 잘못된 방향으로 반올림됩니다.

어리석게도 시장의 점검을 통해 모든 레벨을 10개의 스톱 레벨에 둘 수 있다는 것은 분명합니다. 말하자면, 중재자가 놓칠 수 있지만 일반적인 방식으로 하고 싶습니다.

매수는 반올림하고 매도는 반올림해야 합니다. 오............

 
Vladislav Andruschenko :

불행하게도.

시장에서는 모든 것이 자동으로 진행되어야 합니다.

이제 금에 대한 새로운 농담이 있습니다. 따옴표는 3자리이지만 마지막 기호는 반올림해야 합니다. 즉, 마지막 숫자는 0이어야 합니다.

따라서 반올림할 때 수학 규칙에 따라 반올림되며 최소 정지 규칙을 우회할 수 있는 잘못된 방향으로 반올림됩니다.

어리석게도 시장의 점검을 통해 모든 레벨을 10개의 정지 레벨에 넣을 수 있다는 것은 분명합니다. 말하자면, 중재자가 놓칠 수 있지만 일반적인 방식으로 하고 싶습니다.

매수는 반올림하고 매도는 반올림해야 합니다. 오............

나는 또한 금과 은에 대한 테스트의 문제에 직면하여 그러한 기능을 작성했습니다.

 double NormalizePrice( string symbol, double value )
  {
   double ts=SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE);
   if (ts== 0 ) return ( value );
   return (NormalizeDouble( value /ts, 0 )*ts);
  }

사용 사례

       double ask= NormalizeDouble ( SymbolInfoDouble (symbol, SYMBOL_ASK ),digits);
       if ( NormalizeDouble (NormalizePrice(symbol,ask),digits)!=ask) return ;
 

이것은 예를 들어 이익을 취하는 설정 기능이 나에게 어떻게 생겼는지, 손절매는 유사합니다.

 void ModifyTP( string symbol, double tp)
  {
   if (tp<= 0 ) return ;
   bool res;
   double last= SymbolInfoDouble (symbol, SYMBOL_LAST );
   double bid= SymbolInfoDouble (symbol, SYMBOL_BID );
   double ask= SymbolInfoDouble (symbol, SYMBOL_ASK );
   double point= SymbolInfoDouble (symbol, SYMBOL_POINT );
   int digits=( int ) SymbolInfoInteger (symbol, SYMBOL_DIGITS );

   if (last<= 0.0 )
     {
      bid= SymbolInfoDouble (symbol, SYMBOL_BID );
      ask= SymbolInfoDouble (symbol, SYMBOL_ASK );
     }
   else
     {
      bid= SymbolInfoDouble (symbol, SYMBOL_LAST );
      ask= SymbolInfoDouble (symbol, SYMBOL_LAST );
     }

   if (bid<= 0.0 ) return ;
   if (ask<= 0.0 ) return ;

   int total= OrdersTotal ();

   for ( int i= 0 ; i<total; i++)
     {
       if (! OrderSelect (i, SELECT_BY_POS )) continue ;
       if ( OrderMagicNumber ()!=Magic) continue ;
       if ( OrderSymbol ()!=symbol) continue ;
       if ( OrderType ()> 1 ) continue ;
       if ( OrderTakeProfit ()!= 0 ) continue ;

       if ( OrderType ()== OP_BUY ) tp= NormalizeDouble (NormalizePrice(symbol,bid+tp*point),digits);
       if ( OrderType ()== OP_SELL ) tp= NormalizeDouble (NormalizePrice(symbol,ask-tp*point),digits);
       if (tp< 0 ) continue ;
      res= OrderModify ( OrderTicket (), OrderOpenPrice (), OrderStopLoss (),tp, 0 );
       if (!res)
        {
         int error= GetLastError ();
         rezult= StringConcatenate ( OrderSymbol (), ": error modifying TakeProfit order " ,StrToType( OrderType ()), " №- " ,error, " " ,ErrorDescription(error), " Ticket: " , OrderTicket ());
         Print (rezult);
        }
     }
  }
 
Sergey Gritsay :

나는 또한 금과 은에 대한 테스트의 문제에 직면하여 그러한 기능을 작성했습니다.

사용 사례

MT5 서버의 골드 - 소수점 3자리, 하지만 정류장과 시작 가격 은 !!!! 소수점 이하 2자리, 즉 최대 3자리가 아니라 최대 2자리까지 반올림하면 금과 은에 대한 최소 정지와 함께 여전히 농담이 있을 것입니다.

다음과 같은 종류:

   request.tp= NormalizeDouble (request.tp, SymbolInfoInteger (symToWork2, SYMBOL_DIGITS )-Rounding);
   request.sl= NormalizeDouble (request.sl, SymbolInfoInteger (symToWork2, SYMBOL_DIGITS )-Rounding);
   request.price= NormalizeDouble (request.price, SymbolInfoInteger (symToWork2, SYMBOL_DIGITS )-Rounding);

여기서 반올림 = MT5 금의 경우 1입니다.

또한 가격도 반올림해야합니다. 그렇지 않으면 잘못된 가격이라고 쓰여지지만 반올림하면 서버 자체가 정상 가격으로 수정되고 거래가 진행됩니다.

MT4에는 그런 농담이 없습니다. 소수점 이하 2자리가 있고 문제 없이 소수점 2자리까지 반올림할 수 있습니다.

오류 130에 대한 내 개인적인 의견:

오류 130에 대한 모든 검사가 있습니다. 오류 로그에 출력이 있습니다.

정상화도 있다.

시장에서 강제로 최소스톱+스프레드(예: ASK 가격에서 매수에 베팅해야 하지만 BID 가격에서 최소스톱 확인)

따라서 이것은 사용자를 위해 강제로 수행 되어야 합니다. 예를 들어 거래자가 어드바이저를 사용하고 손절매를 20포인트로 설정하면 어드바이저는 자동으로 50포인트(minstop + 스프레드)로 재정의해야 합니다. 잘못된. 거래자 자신은 오류 130을 확인하고 자신의 위험과 위험을 감수하고 중지를 수정해야 합니다.

사용자가 손절매를 최소값보다 작게 설정한 경우 거래 및 수정을 금지하는 또 다른 옵션은 무엇입니까? 중재자는 오류 130이 있는 전문가가 통과하도록 허용하지 않기 때문입니다.

그러나 거래를 금지하는 것은 잘못되었습니다. 스탑과 스프레드는 유동적입니다. 이제 최소값보다 작습니다. 그러면 모든 것이 정상입니다.

전문가를 개발하고 시장에 게시하는 사람들은 나를 이해할 것입니다.

IMHO: 오류 130이 있어야 하고 전문가가 아닌 서버에서 오류 130이 표시되어야 합니다. "정류소가 최소값 미만입니다. 수정하십시오."라고 말합니다.

시장 규칙: 오류 130을 생성한 Expert Advisor를 건너뛰지 마십시오. 검사기가 손절매에 1포인트를 넣었기 때문입니다. 글쎄, 이것은 실패입니다.

또한 동일한 버전의 Expert Advisor가 통과할 수도 있고 통과하지 못할 수도 있습니다.

나는 버전을 게시했습니다 - 모든 것이 정상입니다. 잠시 후 전문가가 많은 인쇄를 하는 것을 보았습니다(스톱로스가 최소 손실보다 적다는 사실에 대해) 빠르게 수정했습니다 - 다시 확인을 시작할 때까지 일주일을 기다렸습니다. 일부 기호에서 다시 오류 130이 나왔기 때문에 2주 동안 정체됩니다.

 
Vladislav Andruschenko :

MT5 서버의 골드 - 소수점 3자리, 하지만 정류장과 시작 가격 은 !!!! 소수점 이하 2자리, 즉 최대 3자리가 아니라 최대 2자리까지 반올림하면 금과 은에 대한 최소 정지와 함께 여전히 농담이 있을 것입니다.

다음과 같은 종류:

여기서 반올림 = MT5 금의 경우 1입니다.

또한 가격도 반올림해야합니다. 그렇지 않으면 잘못된 가격이라고 쓰여지지만 반올림하면 서버 자체가 정상 가격으로 수정되고 거래가 진행됩니다.

MT4에는 그런 농담이 없습니다. 소수점 이하 2자리가 있고 문제 없이 소수점 2자리까지 반올림할 수 있습니다.

오류 130에 대한 내 개인적인 의견:

오류 130에 대한 모든 검사가 있습니다. 오류 로그에 출력이 있습니다.

정상화도 있다.

시장에서 강제로 최소스톱+스프레드(예: ASK 가격에서 매수에 베팅해야 하지만 BID 가격에서 최소스톱 확인)

따라서 이것은 사용자를 위해 강제로 수행 되어야 합니다. 예를 들어 거래자가 어드바이저를 사용하고 손절매를 20포인트로 설정하면 어드바이저는 자동으로 50포인트(minstop + 스프레드)로 재정의해야 합니다. 잘못된. 거래자 자신은 오류 130을 확인하고 자신의 위험과 위험을 감수하고 중지를 수정해야 합니다.

사용자가 손절매를 최소값보다 작게 설정한 경우 거래 및 수정을 금지하는 또 다른 옵션은 무엇입니까? 중재자는 오류 130이 있는 전문가가 통과하도록 허용하지 않기 때문입니다.

그러나 거래를 금지하는 것은 잘못되었습니다. 스탑과 스프레드는 유동적입니다. 이제 최소값보다 작습니다. 그러면 모든 것이 정상입니다.

전문가를 개발하고 시장에 게시하는 사람들은 나를 이해할 것입니다.

IMHO: 오류 130이 있어야 하고 전문가가 아닌 서버에서 오류 130이 표시되어야 합니다. "정류소가 최소값 미만입니다. 수정하십시오."라고 말합니다.

시장 규칙: 오류 130을 생성한 Expert Advisor를 건너뛰지 마십시오. 검사기가 손절매에 1포인트를 넣었기 때문입니다. 글쎄, 이것은 실패입니다.

또한 동일한 버전의 Expert Advisor가 통과할 수도 있고 통과하지 못할 수도 있습니다.

나는 버전을 게시했습니다 - 모든 것이 정상입니다. 잠시 후 전문가가 많은 인쇄를 하는 것을 보았습니다(스톱로스가 최소 손실보다 적다는 사실에 대해) 빠르게 수정했습니다 - 다시 확인을 시작할 때까지 일주일을 기다렸습니다. 일부 기호에서 다시 오류 130이 나왔기 때문에 2주 동안 정체됩니다.

IMHO - 많은 서버 메시지는 오류가 아니라 반환 코드입니다. 그리고 온갖 속임수로 그것을 피하기 위해서가 아니라, 전문가가 결정을 내릴 수 있도록 하기 위해서 필요합니다. 서버의 작업에 대한 응답을 기반으로 결정합니다. 그렇지 않으면 서버와의 상호 "통신"을 기반으로 시장을 모니터링하고 조치를 수정할 수없는 어리석은 장난감 일뿐입니다.

그래서 130번째 실수에 대한 중재자의 "얼굴"은 굴절입니다. 문제에 신중하게 접근할 필요가 있습니다. 어드바이저가 130번째 오류 후에도 계속해서 서버를 망치로 두드리는 경우, 이것은 한 가지이고, 자신의 행동을 변경하여 이에 대응할 때 완전히 다른 것입니다. 왜 우리는 두 번째를 금지합니까? 누군가(진행자)가 전문가의 작업을 자세히 살펴보고 싶지 않기 때문에? 그들이 결혼에서 130을 본 느낌. EA가 논리를 위해 서버로부터 그러한 응답을 필요로 하는 것은 중요하지 않습니다. 그냥 거부하고 더 이상 보지 않는 것이 중요합니다. 그래서 무엇?

 
Artyom Trishkin :

IMHO - 많은 서버 메시지는 오류가 아니라 반환 코드입니다. 그리고 온갖 속임수로 그것을 피하기 위해서가 아니라, 전문가가 결정을 내릴 수 있도록 하기 위해서 필요합니다. 서버의 작업에 대한 응답을 기반으로 결정합니다. 그렇지 않으면 서버와의 상호 "통신"을 기반으로 시장을 모니터링하고 조치를 수정할 수없는 어리석은 장난감 일뿐입니다.

그래서 130번째 실수에 대한 중재자의 "얼굴"은 굴절입니다. 문제에 신중하게 접근해야 합니다. 어드바이저가 130번째 오류 이후에 계속해서 서버를 망치로 두드리는 경우, 이것은 한 가지이고 그가 자신의 행동을 변경하여 이에 대응할 때 완전히 다른 것입니다. 왜 우리는 두 번째를 금지합니까? 누군가(진행자)가 전문가의 작업을 자세히 살펴보고 싶지 않기 때문에? 그들이 결혼에서 130을 본 느낌. EA가 논리를 위해 서버로부터 그러한 응답을 필요로 하는 것은 중요하지 않습니다. 그냥 거부하고 더 이상 보지 않는 것이 중요합니다. 그래서 무엇?

내 EA는 최소 이동을 잡아서 서버를 망치지 만 1 정지 손실 포인트가 아니라 정상적인 최소 수준 + 스프레드로 있지만 스프레드는 떠 있습니다. 따라서 어드바이저는 정상으로 돌아올 때까지 서버를 망치질합니다. 확장 확산이 아닙니다.

즉, 열 때 최소 정지를 확인하고 값을 다시 빌드한 다음 서버를 망치질합니다. 하지만 10개의 스톱 포인트를 넣어야 한다면 최소 스프레드를 기다려야 하고 서버를 망치질해야 합니다.