MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1385

 
Vitaly Muzichenko :

설명된 모든 것은 노란색으로 강조 표시된 것을 제외하고는 이전에 게시된 코드에 의해 수행됩니다. 나는 그것이 불필요하고 완전히 정확하지 않다고 생각합니다. 여하튼 나는 누군가가 다른 시간에 롤오버를 하는 것을 본 적이 없으며 모두가 항상 같은 것을 가지고 있습니다 - 22-00 GMT , 비록 내가 틀릴 수 있지만.

그러나 나는 종종 다른 롤오버 기간을 만났습니다. 일부는 5분이고 다른 일부는 1분 이상입니다.

---

인증 코드, 변경할 수 있습니까?

따라서 모든 것을 GMT 시간에 맞추십시오. 현지 시간 과 서버 시간의 차이를 알아보았는데, 롤오버가 얼마나 걸리는지 바로 알 수 있습니다. 그리고 5분이나 1은 큰 차이가 없다고 생각합니다. 모두에게 5분을 투자하세요.

 
Alexey Viktorov :

따라서 모든 것을 GMT 시간에 맞추십시오. 현지 시간 과 서버 시간의 차이를 알아보았는데, 롤오버가 얼마나 걸리는지 바로 알 수 있습니다. 그리고 5분이나 1은 큰 차이가 없다고 생각합니다. 모두에게 5분을 투자하세요.

귀하의 옵션이 더 좋거나 더 안정적입니까?

가능하면 코드를 보여주세요!
 
Vitaly Muzichenko :

귀하의 옵션이 더 좋거나 더 안정적입니까?

어쩌면 아무것도. 나는 당신의 코드를 따르지 않았습니다. 그냥 내 의견을 표현했습니다.

 

Vitaly Muzichenko :

가능하면 코드를 보여주세요!

척하는거야?

 
Alexey Viktorov :

어쩌면 아무것도. 나는 당신의 코드를 따르지 않았습니다. 그냥 내 의견을 표현했습니다.

이 모든 것이 하나의 게시물에 있습니다.

EA가 확장된 스프레드에서 거래되지 않도록 롤오버 동안 스프레드 기록을 제거해야 합니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론

비탈리 무지첸코 , 2021.02.11 14:04

설명된 모든 것은 노란색으로 강조 표시된 것을 제외하고는 이전에 게시된 코드에 의해 수행됩니다. 나는 그것이 불필요하고 완전히 정확하지 않다고 생각합니다. 여하튼 저는 누군가 다른 시간에 롤오버를 하는 것을 본 적이 없습니다. 모두가 항상 같은 것을 가지고 있습니다. 22-00 GMT에 제가 틀릴 수도 있습니다.

그러나 나는 종종 다른 롤오버 기간을 만났습니다. 일부는 5분이고 다른 일부는 1분 이상입니다.

---

인증 코드, 변경할 수 있습니까?

 //+------------------------------------------------------------------+
void OnTick ( void )
{
   int sp = SymbolInfoInteger ( Symbol (), SYMBOL_SPREAD );
   static int ts= 0 ;

   if (CheckSpr(sp)) {
       // Здесь код отправки
       Comment ( sp, "=" ,ts++, "=" ,res );
   } else Comment ( "false: " ,sp, "=" ,ts++, "=" ,res );
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
MqlDateTime dt;
int res= 0 ;
bool CheckSpr( int _sp)
{
   TimeGMT (dt);
   static int ts= 0 ;
   static long tc= 0 ;
   if (dt.hour== 22 ) return ( false ); // ролловер
   tc++;
   ts += _sp;
   res =ts/tc;
   if (tc> LONG_MAX - 1 ) {
      tc= 0 ;
      ts= 0 ;
   }
   // Comment( res,"=",tc );
   if (tc< 500 ) return ( false ); // собираем спред на 500 тиках
   return (res>_sp? true : false );
}

 
Vitaly Muzichenko :

이 모든 것이 하나의 게시물에 있습니다.

EA가 확장된 스프레드에서 거래되지 않도록 롤오버 동안 스프레드 기록을 제거해야 합니다.


한 시간 동안 거래가 없습니까?

   if (dt.hour== 22 ) return ( false ); // ролловер

아니면 뭔가 오해?

 
Vitaly Muzichenko :

이 모든 것이 하나의 게시물에 있습니다.

EA가 확장된 스프레드에서 거래되지 않도록 롤오버 동안 스프레드 기록을 제거해야 합니다.


롤오버 시 스프레드의 특정 기록(파일, 데이터베이스)을 가설적으로 금지합니까?

 
Alexey Viktorov :

한 시간 동안 거래가 없습니까?

아니면 뭔가 오해?

맞습니다. 한 시간 후 - 확산이 증가했습니다. 예, 5분 동안 롤오버되기 전에 일부 장소에서는 확장되기도 합니다.

 
Alexey Viktorov :

한 시간 동안 거래가 없습니까?

아니면 뭔가 오해?

그러나 다음과 같이 작성할 수 있습니다.

 void OnTick ( void )
{
   int sp = SymbolInfoInteger ( Symbol (), SYMBOL_SPREAD );

   if (CheckSpr(sp)) {
       // Здесь код отправки
       Comment ( sp, "=" ,res );
   } else Comment ( "false: " ,sp, "=" ,res );
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
MqlDateTime dt;
int res= 0 ;
bool CheckSpr( int _sp)
{
   static int ts= 0 ;
   static long tc= 0 ;
   TimeGMT (dt);
   if (dt.hour== 22 && res<_sp ) return ( false ); // Если 1 час после ролловера спред упадёт до нормального - торгуем
   tc++;
   ts += _sp;
   res =ts/tc;
   if (tc> LONG_MAX - 1 ) {
      tc= 0 ;
      ts= 0 ;
   }
   if (tc< 500 ) return ( false );
   return (res>_sp? true : false );
}

제대로 작동해야 할 것 같습니다.

 
Vitaly Muzichenko :

그러나 다음과 같이 작성할 수 있습니다.

제대로 작동해야 할 것 같습니다.

미소) 해서는 안 된다)

전투가 정상적인 스프레드로 거래하는 것이라면 입력에 "한도"를 입력하고 스프레드가 한도를 초과하면 거래를 무시하십시오.

롤오버 없이도 거래를 통해 스프레드를 늘릴 수 있습니다.