서비스. 이미 작업 중이신가요? - 페이지 19

 
Sergey Golubev :

몇 년 전, 스레드의 영어 부분(지금은 긴 검색입니다. 죄송합니다)에 거래(및 시장 분석 )할 때 텍스트 파일을 생성하고 업데이트한 고문이 있었습니다. 동일한 Metatrader에서 실행되지만 다른 쌍(또는 동일하지만 다른 그래프에서)에서 실행되는 다른 고문에 의한 특정 간격. 그리고 둘 다 이 파일로 서로 통신하면서 거래했습니다.

나는 이것을 다른 터미널의 스캘퍼 마스터 및 스캘퍼 슬레이브와 통신하기 위해 수행했습니다. 그러나 상인의 제어 명령 만 거기에 전송되므로 모든 터미널의 동일한 버튼이 수동으로 클릭되지 않습니다. 데이터 전송을 방해하는 것은 없습니다.

메모리 매핑을 통해 통신할 수 있습니다. 그러면 굿바이 마켓

 

나는 사용자 정의 기호 로 많은 작업을 합니다. 거의 항상 사용자 정의를 강타해야 하지만 수동으로 수행해야 합니다. 자동화하기로 결정했습니다.

그리고 이것은 서비스의 시나리오일 뿐이라는 것이 밝혀졌습니다. 아마도 이것은 서비스에 대한 표준 접근 방식은 아니지만 차트에 얽매이지 않는 스크립트가 필요했습니다. 그리고 그 이유는

 // Удаляет символ активного графика из Обзора рынка (кастомный - удаляет полностью).

#property service

// Находит чарт в фокусе.
long GetFocusChart()
{
   long Chart = ChartFirst ();

   for (; Chart != - 1 ; Chart = ChartNext (Chart))
     if ( ChartGetInteger (Chart, CHART_BRING_TO_TOP ))
       break ;

   return (Chart);
}
   
// Удаляет чарты символа.
int DeleteCharts( const string Symb )
{
   int Res = 0 ;
  
   for ( long Chart = ChartFirst (); Chart != - 1 ; Chart = ChartNext (Chart))
     if ( ChartSymbol (Chart) == Symb)
      Res += ChartClose (Chart);
  
   return (Res);
}

// Удаляет символ из Обзора рынка (кастомный - удаляет полностью).
bool DeleteSymbol( const string Symb )
{
  DeleteCharts(Symb);

   return ( SymbolSelect (Symb, false ) && (! SymbolInfoInteger (Symb, SYMBOL_CUSTOM ) || CustomSymbolDelete (Symb)));
}

void OnStart ()
{
   const long Chart = GetFocusChart();
  
   if (Chart != - 1 )
    DeleteSymbol( ChartSymbol (Chart));
}

나는 이 스크립트/서비스에 핫키를 걸고 불쾌한 기호의 차트를 볼 때 그것을 통해 기호를 못 박을 것이라고 생각했습니다. 매우 편리할 것입니다. 그러나 그는 어려움에 직면했습니다.

  • 서비스에서 단축키를 끊는 것은 불가능합니다.
  • 서비스를 다시 시작하려면 먼저 서비스를 삭제해야 합니다. 이는 터미널을 시작하는 첫 번째 단계에서 서비스를 시작하기 위해 필요하다고 가정했습니다. 하지만 제 경우는 다릅니다.
  • SymbolSelect 실패 - 기호를 제거할 수 없습니다. 버그가 분명합니다.
결과적으로 꽝입니다. 서비스의 실용적인 측면을 어떻게든 해결할 수 있습니까?


ZY 활성 차트의 기호를 삭제하는 문제를 해결하기 위한 해결 방법이 있습니다.

 
fxsaber :

저는 커스텀 심볼로 작업을 많이 합니다. 거의 항상 사용자 정의를 강타해야 하지만 수동으로 수행해야 합니다. 자동화하기로 결정했습니다.

그리고 이것은 서비스의 시나리오일 뿐이라는 것이 밝혀졌습니다. 아마도 이것은 서비스에 대한 표준 접근 방식은 아니지만 차트에 얽매이지 않는 스크립트가 필요했습니다. 그리고 그 이유는

나는 이 스크립트/서비스에 핫키를 걸고 불쾌한 기호의 차트를 볼 때 그것을 통해 기호를 못 박을 것이라고 생각했습니다. 매우 편리할 것입니다. 그러나 그는 어려움에 직면했습니다.

  • 서비스에서 단축키를 끊는 것은 불가능합니다.
  • 서비스를 다시 시작하려면 먼저 삭제해야 합니다. 이는 터미널을 시작하는 첫 번째 단계에서 서비스를 시작하기 위해 필요하다고 가정했습니다. 하지만 제 경우는 다릅니다.
  • SymbolSelect 실패 - 기호를 제거할 수 없습니다. 버그가 분명합니다.
결과적으로 꽝입니다. 서비스의 실용적인 측면을 어떻게든 해결할 수 있습니까?


ZY 활성 차트의 기호를 삭제하는 문제를 해결하기 위한 해결 방법이 있습니다.

OnChartEvent() 함수 가 서비스에서 작동하지 않기 때문에 핫키를 서비스에 할당하는 것은 불가능합니다. 그러나 나는 당신이 알고 있다고 생각합니다. 이는 Expert Advisor가 바로 가기 키를 사용하여 작업하고 리소스를 통해 서비스에 명령을 전송해야 함을 의미합니다. 리소스를 통해 서비스를 관리해 보세요.

추신. 물론 이는 서비스 이용의 의미를 상실하게 됩니다. 결국 단축키를 눌러 고문에서 차트를 닫을 수 있습니다 ...

ZYY. 유일한 요점은 Expert Advisors에서 추가 기능을 생성하지 않는다는 것입니다. 우리는 서비스에서 다른 고문의 일반 기능을 버리고 리소스를 통해 액세스합니다. 우리는 무엇을 해야 하는지 명령합니다.

 
Реter Konow :

OnChartEvent() 함수 가 작동하지 않기 때문에 서비스에 핫키를 할당하는 것은 불가능합니다.


 
fxsaber :


고맙습니다. 그럼 뭐가 문제야?

키 입력에 응답하려면 서비스 자체(논스톱으로 작동)도 필요합니다.

 
Реter Konow :

고맙습니다. 그럼 뭐가 문제야?

키 입력에 응답하려면 서비스 자체(논스톱으로 작동)도 필요합니다.

아니요. 서비스가 차트에 얽매이지 않고 스크립트 모드에서 작동할 수 있어야 합니다.

 
fxsaber :

아니요. 서비스가 차트에 얽매이지 않고 스크립트 모드에서 작동할 수 있어야 합니다.

그러나 다른 방식으로 작동합니까?

 
Реter Konow :

그러나 다른 방식으로 작동합니까?

네.

 
fxsaber :

네.

그가 어떤 차트도 관리할 수 있도록? 용이하게.

 
이 서비스는 조정 가능성이 있는 데이터(따옴표)로 작동하지만 아무 것도 관리할 수 없습니다. 특히 - 터미널 창, 그리고 그것이 바로 당신이 필요로 하는 것입니다. 따라서 분명한 결론은 다음과 같습니다. 하나 또는 다른 창을 닫아야 하는 경우 서비스는 이 창에 대해 분명히 불가능한 견적을 생성하고 이 창에 첨부된 스크립트는 이 견적이 수신되면 이 창을 닫습니다.