오류, 버그, 질문 - 페이지 2228

 
Konstantin :

전체 코드를 출력하고 손으로 코드를 구성하는 방법을 모르는 사람들을 위해 ME에 스타일러가 있습니다.


스타일러 가 도움이되지 않았습니다. 코드가 올바르게 작성되지 않았을 수 있습니다.
 
Impreza :

도와주세요 문제가 이해가 안되네요...

완전한 정보를 제공하지 않았기 때문에 텔레파시를 켭니다.

mouse_event 함수가 WinUser32.mqh 파일에 잘못 선언 되었습니다.

이에 대한 수정:

 #define _WIN64  // Только для 64-разрядного терминала!

#include <WinDef.mqh>

#import "User32.dll"
  void mouse_event( DWORD dwFlags, DWORD dx, DWORD dy, DWORD dwData, ULONG_PTR dwExtraInfo );
#import

파일:
WinDef.mqh  2 kb
 
Koldun Zloy :

완전한 정보를 제공하지 않았기 때문에 텔레파시를 켭니다.

mouse_event 함수가 WinUser32.mqh 파일에 잘못 선언 되었습니다.

이에 대한 수정:


완전한 정보를 제공할 수 있습니까?
 
Impreza :
완전한 정보를 제공할 수 있습니까?

WinUser32.mqh 파일, 터미널의 비트 깊이, 오류가 재현되는 코드, 오류가 발생한 행을 의미했습니다.

그게 비밀이야?

 
Impreza :
스타일러 가 도움이되지 않았습니다. 코드가 올바르게 작성되지 않았을 수 있습니다.

글쎄, 코드가 올바르게 작성되지 않았다는 사실, 더 이상 의심하지 않습니다. 앉아 있지 않고 서서 작성해보십시오. 때로는 탬버린과 함께 춤을 추는 것이 도움이됩니다))

오류를 재현하기 위해 전체 코드를 제공하라는 요청을 받았지만 무시했습니다. 주말이 끝나므로 직접 계속하십시오. ))

 
Koldun Zloy :

WinUser32.mqh 파일, 터미널의 비트 깊이, 오류가 재현되는 코드, 오류가 발생한 행을 의미했습니다.

그게 비밀이야?

여전히 작동하지 않습니다. 더 많은 오류를 변경합니다. 아마도 라이브러리 일 것입니다. 이것이 어떻게 영향을 미칠지 누가 알겠습니까? 다른 컴퓨터에서는 모든 것이 작동했지만 아무 것도 변경되지 않았습니다 ...
 
Impreza :
여전히 작동하지 않습니다. 더 많은 오류를 변경합니다. 아마도 라이브러리 일 것입니다. 이것이 어떻게 영향을 미칠지 누가 알겠습니까? 다른 컴퓨터에서는 모든 것이 작동했지만 아무 것도 변경되지 않았습니다 ...

그래서 아직 비밀입니다.

잘하셨어요. 기다리다! 포기 하지마!

 
Impreza :


Alt+S를 사용하여 서식이 지정된 코드 를 붙여넣습니다. https://www.mql5.com/ru/articles/24#editor

MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • www.mql5.com
Теперь вы можете не только читать статьи и скачивать программы на языке MQL5, но и участвовать в обсуждении интересующих вас тем на Форуме, оставлять комментарии к статьям и опубликованным кодам. Кроме того, вы можете не только выкладывать собственные разработки в Code Base, но и публиковать Статьи, за которые мы предлагаем вознаграждение...
 
Sergey Savinkin :

Alt+S를 사용하여 서식이 지정된 코드 를 붙여넣습니다. https://www.mql5.com/ru/articles/24#editor

 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                                   Copyright 2017 |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property version    "1.00"
#property strict
#property indicator_buffers 1
#property indicator_plots    0
//#property indicator_color1 Lime
datetime Tim= D'2018.10.10 23:00:00' ;
double y[];
datetime tine= 0 ; string typ= "" ;

input int    bye_x= 1525 ; // Bye - x
input int    bye_y= 432 ; // Bye - y
input int    sell_x= 1525 ; // Sell - х
input int    sell_y= 468 ; // Sell - у
input int    Stop_Limit= 5 ; // Stop_Limit
input int    delta= 2 ; // Spike

#include <WinUser32.mqh>
#import "user32.dll" 
bool   SetCursorPos( int PosX, int PosY);
#import 
input bool Allert= true ; // Allert

const long allowed_accounts[]={ 8432237 , 240712 , 50188344 , 50186534 , 50187101 , 9675587 , 50224049 , 5000007084 , 50211205 }; // 465438
int password_status=- 1 ;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit ()
  {

   EventSetMillisecondTimer ( 20 );

   SetIndexBuffer ( 0 ,y, INDICATOR_DATA );

   long account= AccountInfoInteger ( ACCOUNT_LOGIN );

   for ( int i= 0 ; i< ArraySize (allowed_accounts); i++)
       if (account==allowed_accounts[i])
        {
         password_status= 1 ;
         break ;
        }

   tine= TimeCurrent ()+ 5 ;
   return ( 0 );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {

   return (rates_total);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTimer ()
  {
   if (Tim> TimeCurrent ())
     {

       double agr=( SymbolInfoDouble ( Symbol (), SYMBOL_BID )+ SymbolInfoDouble ( Symbol (), SYMBOL_ASK ))/ 2 ;
      y[ 0 ]=agr;

       for ( int i= ArraySize (y)- 1 ;i>= 1 ;i--){y[i]=y[i- 1 ];}

       if (y[ 1 ]+delta* Point ()<y[ 0 ] || y[ 2 ]+delta* Point ()<y[ 0 ] || 
         y[ 3 ]+delta* Point ()<y[ 0 ] || y[ 4 ]+delta* Point ()<y[ 0 ] || 
         y[ 5 ]+delta* Point ()<y[ 0 ] || y[ 6 ]+delta* Point ()<y[ 0 ] || 
         y[ 7 ]+delta* Point ()<y[ 0 ] || y[ 8 ]+delta* Point ()<y[ 0 ] || 
         y[ 9 ]+delta* Point ()<y[ 0 ] || y[ 10 ]+delta* Point ()<y[ 0 ] || 
         y[ 11 ]+delta* Point ()<y[ 0 ] || y[ 12 ]+delta* Point ()<y[ 0 ] || 
         y[ 13 ]+delta* Point ()<y[ 0 ] || y[ 14 ]+delta* Point ()<y[ 0 ] || 
         y[ 15 ]+delta* Point ()<y[ 0 ] || y[ 16 ]+delta* Point ()<y[ 0 ] || 
         y[ 17 ]+delta* Point ()<y[ 0 ] || y[ 18 ]+delta* Point ()<y[ 0 ] || 
         y[ 19 ]+delta* Point ()<y[ 0 ] || y[ 20 ]+delta* Point ()<y[ 0 ])

         if (password_status== 1 )
            Up_sig( "Call_sig" );

       if (y[ 1 ]-delta* Point ()>y[ 0 ] || y[ 2 ]-delta* Point ()>y[ 0 ] || 
         y[ 3 ]-delta* Point ()>y[ 0 ] || y[ 4 ]-delta* Point ()>y[ 0 ] || 
         y[ 5 ]-delta* Point ()>y[ 0 ] || y[ 6 ]-delta* Point ()>y[ 0 ] || 
         y[ 7 ]-delta* Point ()>y[ 0 ] || y[ 8 ]-delta* Point ()>y[ 0 ] || 
         y[ 9 ]-delta* Point ()>y[ 0 ] || y[ 10 ]-delta* Point ()>y[ 0 ] || 
         y[ 11 ]-delta* Point ()>y[ 0 ] || y[ 12 ]-delta* Point ()>y[ 0 ] || 
         y[ 13 ]-delta* Point ()>y[ 0 ] || y[ 14 ]-delta* Point ()>y[ 0 ] || 
         y[ 15 ]-delta* Point ()>y[ 0 ] || y[ 16 ]-delta* Point ()>y[ 0 ] || 
         y[ 17 ]-delta* Point ()>y[ 0 ] || y[ 18 ]-delta* Point ()>y[ 0 ] || 
         y[ 19 ]-delta* Point ()>y[ 0 ] || y[ 20 ]-delta* Point ()>y[ 0 ])

         if (password_status== 1 )
            Dn_sig( "Sell_sig" );

        } else { Alert ( "Демо-период завершён " , TimeToString (Tim));
     }

  }
//+------------------------------------------------------------------+

void Up_sig( string txt)
  {
   if ( TimeCurrent ()>(tine+Stop_Limit))
     {
      tine= TimeCurrent ();

       if (Allert) Alert (txt);

      SetCursorPos(bye_x,bye_y);
      mouse_event(MOUSEEVENTF_LEFTDOWN, 0 , 0 , 0 , 0 );
      mouse_event(MOUSEEVENTF_LEFTUP, 0 , 0 , 0 , 0 );

     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Dn_sig( string txt)
  {
   if ( TimeCurrent ()>(tine+Stop_Limit))
     {
      tine= TimeCurrent ();

       if (Allert) Alert (txt);

      SetCursorPos(sell_x,sell_y);
      mouse_event(MOUSEEVENTF_LEFTDOWN, 0 , 0 , 0 , 0 );
      mouse_event(MOUSEEVENTF_LEFTUP, 0 , 0 , 0 , 0 );

     }
  }
//+------------------------------------------------------------------+
 
Impreza :
 #property indicator_chart_window

input int   bye_x = 1525 ;   // Bye - x
input int   bye_y = 432 ;     // Bye - y
input int   sell_x = 1525 ;   // Sell - х
input int   sell_y = 468 ;   // Sell - у
input int   Stop_Limit = 5 ; // Stop_Limit
input int   delta = 2 ;       // Spike
input bool Allert = true ;   // Allert

#define MOUSEEVENTF_LEFTDOWN     0x0002 // left button down
#define MOUSEEVENTF_LEFTUP       0x0004 // left button up

#define _WIN64   // Только для 64-разрядного терминала!

#include <WinDef.mqh>

#import "user32.dll" 
   BOOL SetCursorPos( int PosX, int PosY );
   void mouse_event( DWORD dwFlags, DWORD dx, DWORD dy, DWORD dwData, ULONG_PTR dwExtraInfo );
#import 

const long allowed_accounts[] = { 8432237 , 240712 , 50188344 , 50186534 , 50187101 , 9675587 , 50224049 , 5000007084 , 50211205 }; // 465438
datetime Tim = D'2018.10.10 23:00:00' ;
double y[];
int password_status = - 1 ;
datetime tine = 0 ;
string typ = "" ;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
{
//--- indicator buffers mapping
   EventSetMillisecondTimer ( 20 );
   
   SetIndexBuffer ( 0 , y, INDICATOR_DATA );
   
   long account = AccountInfoInteger ( ACCOUNT_LOGIN );
   
   for ( int i = 0 ; i < ArraySize ( allowed_accounts ); i++ ){
       if ( account == allowed_accounts[i] )
      {
         password_status = 1 ;
         break ;
      }
   }
   
   tine = TimeCurrent () + 5 ;
//---
   return INIT_SUCCEEDED ;
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{
   return rates_total;
}
//+------------------------------------------------------------------+
void OnTimer ()
{
   if ( Tim > TimeCurrent () )
   {
       double agr = ( SymbolInfoDouble ( Symbol (), SYMBOL_BID ) + SymbolInfoDouble ( Symbol (), SYMBOL_ASK )) / 2.0 ;
      y[ 0 ] = agr;

       for ( int i = ArraySize (y)- 1 ; i >= 1 ; i--)
      {
         y[i] = y[i- 1 ];
      }
      
       double dp = delta * Point ();

       if ( y[ 1 ] + dp < y[ 0 ] || y[ 2 ] + dp < y[ 0 ] || 
         y[ 3 ] + dp < y[ 0 ] || y[ 4 ] + dp < y[ 0 ] || 
         y[ 5 ] + dp < y[ 0 ] || y[ 6 ] + dp < y[ 0 ] || 
         y[ 7 ] + dp < y[ 0 ] || y[ 8 ] + dp < y[ 0 ] || 
         y[ 9 ] + dp < y[ 0 ] || y[ 10 ] + dp < y[ 0 ] || 
         y[ 11 ] + dp < y[ 0 ] || y[ 12 ] + dp < y[ 0 ] || 
         y[ 13 ] + dp < y[ 0 ] || y[ 14 ] + dp < y[ 0 ] || 
         y[ 15 ] + dp < y[ 0 ] || y[ 16 ] + dp < y[ 0 ] || 
         y[ 17 ] + dp < y[ 0 ] || y[ 18 ] + dp < y[ 0 ] || 
         y[ 19 ] + dp < y[ 0 ] || y[ 20 ] + dp < y[ 0 ])
      {
         if ( password_status == 1 ){
            Up_sig( "Call_sig" );
         }
      }

       if (y[ 1 ] - dp > y[ 0 ] || y[ 2 ] - dp > y[ 0 ] || 
         y[ 3 ] - dp > y[ 0 ] || y[ 4 ] - dp > y[ 0 ] || 
         y[ 5 ] - dp > y[ 0 ] || y[ 6 ] - dp > y[ 0 ] || 
         y[ 7 ] - dp > y[ 0 ] || y[ 8 ] - dp > y[ 0 ] || 
         y[ 9 ] - dp > y[ 0 ] || y[ 10 ] - dp > y[ 0 ] || 
         y[ 11 ] - dp > y[ 0 ] || y[ 12 ] - dp > y[ 0 ] || 
         y[ 13 ] - dp > y[ 0 ] || y[ 14 ] - dp > y[ 0 ] || 
         y[ 15 ] - dp > y[ 0 ] || y[ 16 ] - dp > y[ 0 ] || 
         y[ 17 ] - dp > y[ 0 ] || y[ 18 ] - dp > y[ 0 ] || 
         y[ 19 ] - dp > y[ 0 ] || y[ 20 ] - dp > y[ 0 ])
      {
         if ( password_status == 1 ){
            Dn_sig( "Sell_sig" );
         }
      }
   }
   else {
       Alert ( "Демо-период завершён " , TimeToString ( Tim ) );
   }
}
//+------------------------------------------------------------------+
void Up_sig( string txt )
{
   if ( TimeCurrent () > (tine + Stop_Limit) )
   {
      tine = TimeCurrent ();
      
       if ( Allert ) Alert ( txt );
      
      SetCursorPos( bye_x, bye_y );
      mouse_event( MOUSEEVENTF_LEFTDOWN, 0 , 0 , 0 , 0 );
      mouse_event( MOUSEEVENTF_LEFTUP, 0 , 0 , 0 , 0 );
   }
}
//+------------------------------------------------------------------+
void Dn_sig( string txt )
{
   if ( TimeCurrent () > (tine + Stop_Limit) )
   {
      tine= TimeCurrent ();
      
       if ( Allert ) Alert ( txt );
      
      SetCursorPos( sell_x, sell_y );
      mouse_event( MOUSEEVENTF_LEFTDOWN, 0 , 0 , 0 , 0 );
      mouse_event( MOUSEEVENTF_LEFTUP, 0 , 0 , 0 , 0 );
   }
}
//+------------------------------------------------------------------+