[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 252

 
Dimka-novitsek :
컴파일되지만 실행되지 않습니다.

보았다. ServiceRefreshChart () 함수를 사용할 수 없습니다.

어떤 옵션이 작동하지 않습니까? 그리고 그것은 이미 너무 많습니다. 스크립트와 별도의 차트가 있는 옵션은 항상 작동합니다.

1. EURUSD H1과 같은 차트를 엽니다.

2. 스크립트에서 다음과 같습니다.

 void start()
  {
   int hwndChart = WindowHandle ( "EURUSD" , PERIOD_H1 );
   while (! IsStopped ())
    {
     for ( int i = 0 ; i < 9 && ! IsStopped (); i++)
      {
       ServiceSetTimeframeByNumber(hwndChart, i);
       Sleep ( 4000 );
      }
    }
  }

3. 다른 차트에서 스크립트를 실행합니다.

4. EURUSD H1 차트 는 TF를 변경합니다.

 
고맙습니다!
 
스크립트를 차트로 드래그하면 고문이 매달린 곳과 다른 곳에서 아무 일도 일어나지 않습니다. 스크립트를 사용한 것은 이번이 처음입니다. 그는 이렇게 생겼습니다.
 //+------------------------------------------------------------------+
//|                                                   таймфрейм .mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"
#include <ServicesMT4.mqh>
void start()
  {
   int hwndChart = WindowHandle ( "EURUSD" , PERIOD_H1 );
   while (! IsStopped ())
    {
     for ( int i = 0 ; i < 9 && ! IsStopped (); i++)
      {
       ServiceSetTimeframeByNumber(hwndChart, i);
       Sleep ( 4000 );
      }
    }
  }
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
조언자.
 //+------------------------------------------------------------------+
//|                                                  таймфрейммм.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"
#include <ServicesMT4.mqh>
void start()
  {
   int hwndChart = WindowHandle ( Symbol (), Period ());
   while (! IsStopped ())
    {
     for ( int i = 0 ; i < 9 ; i++)
      {
       ServiceSetTimeframeByNumber(hwndChart, i);
       Sleep ( 4000 );
      }
    }
  }
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
그리고 옵션으로 각각
 //+------------------------------------------------------------------+
//|                                                 таймфреймммм.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"
#include <ServicesMT4.mqh>
int hwndChart = NULL ;
void init()
 {
  hwndChart = WindowHandle ( Symbol (), Period ()); // Получаем системный дескриптор графика.
  ServiceRefreshChart(hwndChart, 1000 ); // Запускаем обновление графика каждую 1 секунду.
 }

void start()
 {
  ServiceStopRefreshChart(hwndChart); // Останавливаем обновление. Больше не требуется.
   while (! IsStopped ())
   {
     for ( int i = 0 ; i < 9 ; i++)
     {
      ServiceSetTimeframeByNumber(hwndChart, i);
       Sleep ( 4000 );
     }
   }
 }
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
 

이 스크립트는 저에게 효과적입니다.

 #include <ServicesMT4.mqh>
void start()
  {
   int hwndChart = WindowHandle ( "EURUSD" , PERIOD_H1 );
   while (! IsStopped ())
    {
     for ( int i = 0 ; i < 9 && ! IsStopped (); i++)
      {
       ServiceSetTimeframeByNumber(hwndChart, i);
       Sleep ( 4000 );
      }
    }
  }

이 Expert Advisor는 이상하게 작동합니다. 작동하지 않는다고 말할 수 있습니다. 자체적으로 TF는 M5까지만 전환합니다.

 #include <ServicesMT4.mqh>
int hwndChart = NULL ;

void init()
 {
   if ( UninitializeReason () != REASON_CHARTCHANGE ) hwndChart = WindowHandle ( Symbol (), Period ()); // Получаем системный дескриптор графика.
  ServiceRefreshChart(hwndChart, 1000 ); // Запускаем обновление графика каждую 1 секунду.
 }

void start()
 {
  ServiceStopRefreshChart(hwndChart); // Останавливаем обновление. Больше не требуется.
   while (! IsStopped ())
   {
     for ( int i = 0 ; i < 9 ; i++)
     {
      ServiceSetTimeframeByNumber(hwndChart, i);
       Sleep ( 4000 );
     }
   }
 }
자연 틱을 기다리겠습니다. 문제가 어디에서 왔는지 명확하지 않습니다. 새로운 MT4 빌드에서 무언가가 변경되었습니다.
 
Zhunko :

이 스크립트는 저에게 효과적입니다.

이 Expert Advisor는 이상하게 작동합니다. 작동하지 않는다고 말할 수 있습니다. 자체적으로 TF는 M5까지만 전환합니다.

자연 틱을 기다리겠습니다. 문제가 어디에서 왔는지 명확하지 않습니다. 새로운 MT4 빌드에서 무언가가 변경되었습니다.


맞습니다. 왜 우리는 계속해서 버그가 있어서 사용할 수 없는 소프트웨어가 필요합니까?

표준 기능을 사용하면 모든 것이 잘 됩니다.

차트에 표시를 던지고 눈금 대신 수동으로 업데이트하십시오.

설정에서 DLL을 활성화하는 것을 잊지 마십시오.

 //+------------------------------------------------------------------+
//|                                                    таймфрейм.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"
#property indicator_chart_window
#import "user32.dll"
   int    PostMessageA( int   hWnd, int   Msg, int   wParam, string lParam);
#import
#define WM_COMMAND                     0x0111
int delimiter = 0 ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  { //return;
   int     counted_bars= IndicatorCounted ();
//----
   if (delimiter< 3 ){delimiter++; Comment (delimiter); return ( 0 );}
   delimiter= 0 ;
   fChangePeriod();
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
void fChangePeriod(){ int ii,hwd = WindowHandle ( Symbol (), Period ());
   switch ( Period ()){
       case PERIOD_W1     : ii = 33134 ; break ; //PERIOD_D1;
       case PERIOD_D1     : ii = 33136 ; break ; //PERIOD_H4;
       case PERIOD_H4     : ii = 33135 ; break ; //PERIOD_H1;
       case PERIOD_H1     : ii = 33140 ; break ; //PERIOD_M30;
       case PERIOD_M30    : ii = 33139 ; break ; //PERIOD_M15;
       case PERIOD_M15    : ii = 33138 ; break ; //PERIOD_M5;
       case PERIOD_M5     : ii = 33137 ; break ; //PERIOD_M1;
       case PERIOD_M1     : ii = 33141 ; break ; //PERIOD_W1;
   }     
   PostMessageA(hwd, WM_COMMAND, ii, 0 );
   return ;
}
 
//+------------------------------------------------------------------+
// Скрипт для переключ таймфрейма.
// Для работы скрипта необходимо разрешить вызов функций из системных DLL:
// Сервис -> Настройки  -> Советники -> Разрешить импорт DLL.
#property show_inputs
#import "user32.dll"
        int PostMessageA(int hWnd,int Msg,int wParam,int lParam);
        void keybd_event(int bVk,int bScan,int dwFlags,int dwExtraInfo);
#import
#define WM_COMMAND 0x0111
extern int Per=5;
//+------------------------------------------------------------------+
int  start()
{int wParam,hWnd=WindowHandle(Symbol(),Period());
switch(Per)
        {case PERIOD_M1: wParam=33137;break;
         case PERIOD_M5: wParam=33138;break;
         case PERIOD_M15:wParam=33139;break;
         case PERIOD_M30:wParam=33140;break;
         case PERIOD_H1: wParam=33135;break;
         case PERIOD_H4: wParam=33136;break;
         case PERIOD_D1: wParam=33134;break;
         case PERIOD_W1: wParam=33141;break;
         case PERIOD_MN1:wParam=33334;break;}
PostMessageA(hWnd,WM_COMMAND,wParam,0);
keybd_event(0xD,0,0,0);keybd_event(0x23,0,0,0);return(0);}
//+------------------------------------------------------------------+ 
 
FAQ :


맞습니다. 계속 버그가 있어서 사용할 수 없는 소프트웨어가 필요한 이유는 무엇입니까?

표준 기능을 사용하면 모든 것이 잘 됩니다.

차트에 표시를 던지고 눈금 대신 수동으로 업데이트하십시오.

설정에서 DLL을 활성화하는 것을 잊지 마십시오.

사실은 무엇입니까? 내가 농담이라면? 확인할 수도 없습니다. 특정 자격이 필요합니다.

PostMessage()를 사용하면 모든 것이 저에게 효과적입니다. 이것만이 잘못된 것입니다. SendMessage()를 사용해보십시오. 차이점을 알기를 바랍니다.

Rustam은 모든 사람이 가장 간단한 소프트웨어를 다룰 수 있는 것은 아닙니다. 당신은 운이 없었습니다. 일부 OS는 버그가 있습니다.

 
감사해요!!!!!!!
 

스크립트 작동!!!!!

그러나 M5로만 전환됩니다.

 
Dimka-novitsek :
스크립트 작동!!!!!
어느?