초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 572

 
Boris.45 :
안녕하세요. 필요한 패턴을 자동으로 검색하고 수동으로 포지션을 여는 데 사용하고 싶은 MT5에 어드바이저를 작성했습니다. 저것들. 어드바이저에는 거래 기능이 없습니다. 제 문제는 이 EA를 차트에 설치할 수 없다는 것입니다. EA에는 지표에 대한 호출이 없습니다. 모든 지표는 프로그램에 기록됩니다. 컴파일 후 전략 테스터에서 실행했습니다. 문제없이 모두. 나는 고문을 차트에 놓고 모니터, 설정 및 고문 자체의 나타나는 창에서 거래할 수 있는 권한을 부여합니다. 가격 차트에서 웃는 얼굴 대신 고문 아이콘이 나타나고 그 위에 흰색 삼각형이 있는 녹색 원이 있습니다. 이 절차를 여러 번 시도했지만 결과는 동일합니다. 가격 차트에서 기간을 변경하면 OnDeinit() 함수의 메시지가 모니터에 나타납니다. 하나의 촛불이 프로그램에서 처리되고 작업이 중지됩니다.

로그를 살펴보니:

- 고문을 설치하려는 시도 중 하나에서 프로그램이 프로필 변경에 대한 메시지를 발행했습니다.

- 다른 모든 시도에서 어드바이저 로드는 설명 없이 통과합니다.

한 번 프로필 작업을 한 적이 있습니다. 프로필 수를 늘리고 각 프로필에 나만의 일정을 설정했습니다. 내가 거기에서 무언가를 부수면 불행히도 모릅니다. 프로그램에서 프로필 변경에 대한 메시지를 표시하려면 거기서 무엇을 깨야 하는지 모르겠습니다. 다른 이유로 실패가 있을 수 있지만. 이것은 나에게 명확하지 않습니다.

오늘은 테스트를 위해 새로운 Expert Advisor(템플릿)를 만들고 OnInit(), OnDeinit(const int reason), OnTick() 함수에 아무 것도 쓰지 않고 이 Expert Advisor를 차트에 올려 보려고 했습니다. 거래를 허용합니다.

이전 상황이 밝혀졌습니다.

도와주세요. 상황을 처리합니다. 감사해요 !!!!!!

순서대로 가자. 템플릿은 다음과 같습니다.

 //+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade ()
  {
//---
   
  }
//+------------------------------------------------------------------+

차트에 첨부하고 차트의 스크린샷을 스튜디오에 첨부하고 "저널" 및 "전문가" 탭의 기록(해당되는 경우)을 첨부합니다.

파일:
Test.mq5  2 kb
 
여기에 내가 이해하는 한 전문가도 없습니다. 불쌍해......
 
Mihail Marchukajtes :
여기에 내가 이해하는 한 전문가도 없습니다. 불쌍해......
그래서 테스터에서 다른 사람의 차트에서 운동량 값을 인쇄
 
Artyom Trishkin :
그래서 테스터에서 다른 사람의 차트에서 운동량 값을 인쇄
인쇄는 버퍼가 그리는 것을 보여줍니다. 제로 정보. 누가 나에게 좋은 대답을 줄 수 있습니까???? 엉뚱한 추측이 아니라...
 
Mihail Marchukajtes :
인쇄는 버퍼가 그리는 것을 보여줍니다. 제로 정보. 누가 나에게 합리적인 대답을 줄 수 있습니까???? 엉뚱한 추측이 아니라...
그래서 당신은 제로 정보를 제공합니다. 귀하의 코드는 어디에 있습니까? 아니면 그들 모두가 여기에 있는 심령술사입니까? 그런 다음 당신은 10 세대 마술사 포럼에 있습니다 ...
 

동료 여러분, 주어진 범위에서 양초의 매개 변수를 비교하는 방법을 알려주십시오.

최대값 또는 최소값을 계산하는 방법을 이해합니다.

코드는 다음과 같습니다.

무효 OnTick()

{

이중 H = 0;

for ( shift = Search_Period; shift >0; shift--)

{

if (고[시프트] > H)

{ H = 높음[시프트]; }

경고 (H);

}

}

그러나 문제는 변수의 값을 덮어씁니다.

그리고 제 목표는 예를 들어 주어진 기간에 동일한 고가 값을 가진 두 개 이상의 양초를 찾는 것입니다. 저것들. 이론적으로 각 반복 후에 값을 저장하고 다른 값을 저장하는 등의 변수를 생성해야 합니다. 전체 간격이 테스트될 때까지. 그리고 그들은 훨씬 더 비교할 수 있습니다.

그러나 나는 그것을하는 방법을 모릅니다 :(

 
Andrey Koldorkin :

동료 여러분, 주어진 범위에서 양초의 매개 변수를 비교하는 방법을 알려주십시오.

최대값 또는 최소값을 계산하는 방법을 이해합니다.

코드는 다음과 같습니다.

..............


그러나 문제는 변수의 값을 덮어씁니다.

그리고 제 목표는 예를 들어 주어진 기간에 동일한 고가 값을 가진 두 개 이상의 양초를 찾는 것입니다. 저것들. 이론적으로 각 반복 후에 값을 저장하고 다른 값을 저장하는 등의 변수를 생성해야 합니다. 전체 간격이 테스트될 때까지. 그리고 그들은 훨씬 더 비교할 수 있습니다.

그러나 나는 그것을하는 방법을 모릅니다 :(

다음과 같이 다소:

 //+------------------------------------------------------------------+
//|                                                     TestCopy.mq4 |
//|              Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link        "https://login.mql5.com/ru/users/artmedia70"
#property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Search_Period= 100 ;   // Количество копируемых High
int searchPeriod=(Search_Period< 1 )? 1 :Search_Period;
double mass_high[][ 2 ];         // массив значений High и их времени
MqlRates array[];             // Массив для копирования Open, High, Low, Close, Time
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   int copy_bars=( int ) fmin (Search_Period, Bars ( Symbol (), Period ()));
   if ( CopyRates ( Symbol (), PERIOD_CURRENT , 1 ,copy_bars,array)> 0 ) {
       double H= 0 ;
       int size_h= 0 ;
       for ( int i= 0 ; i<copy_bars; i++) {
         if (array[i].high>H) {
            H=array[i].high;
            size_h++;
             ArrayResize (mass_high,size_h);
            mass_high[size_h- 1 ][ 0 ]=H;
            mass_high[size_h- 1 ][ 1 ]=( int )array[i].time;
            }
         }
      }
   for ( int i= 0 ; i< ArrayRange (mass_high, 0 ); i++) {
       printf ( "Время: %s, High: %.5f" , TimeToString (( int )mass_high[i][ 1 ], TIME_DATE | TIME_MINUTES ),mass_high[i][ 0 ]);
      }
  }
//+------------------------------------------------------------------+
 
두 개의 서로 다른 전문가 고문을 하나로 작성하는 방법은 무엇입니까?
 
Сергей Зырянов :
두 개의 서로 다른 전문가 고문을 하나로 작성하는 방법은 무엇입니까?
어떤 목적으로 관심이 있습니까? 따라서 한 고문에서 다른 고문으로 코드를 복사하면 올바르게 복사하면 됩니다. 수행 방법을 이해하지 못하면 프리랜서로 주문하십시오.
 
Artyom Trishkin :

다음과 같이 다소:

나는 그것을 알아 내려고 노력할 것입니다. 고맙습니다.