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

 
Vitaly Muzichenko :

좋아, 4K로 몬을 찾아볼게

그리고 사진 출처는 어디인가요?

 
Alexey Viktorov :

그리고 사진 출처는 어디인가요?

4K에서 보낸

 
Vitaly Muzichenko :

4K에서 보낸

자, 다시 확인해 주시겠습니까? 아님?

 
Alexey Viktorov :

자, 다시 확인해 주시겠습니까? 아님?

탐탁지 않은)

 
코드에서 property# 버전 으로 정의된 프로그램의 MQL5 버전 값을 가져오는 방법은 무엇입니까?
 
leonerd :
코드에서 property# 버전 으로 정의된 프로그램의 MQL5 버전 값을 가져오는 방법은 무엇입니까?

사전 정의된 매크로 대체 에서

끊임없는

설명

__데이트__

시간이 없는 파일 컴파일 날짜(시, 분, 초는 0)

__날짜 시간__

파일이 컴파일된 날짜 및 시간

__라인__

이 매크로가 있는 소스 코드의 줄 번호

__파일__

현재 컴파일된 파일의 이름

__길__

현재 컴파일된 파일의 절대 경로

__기능__

매크로를 포함하는 함수의 이름

__펑시__

매크로가 있는 함수의 서명입니다. 매개변수 유형을 사용하여 기능에 대한 전체 설명을 기록하면 식별에 유용할 수 있습니다.   오버로드된 함수

__MQLBUILD__, __MQL5BUILD__

컴파일러 빌드 번호


그런 변수가 없습니다

Документация по MQL5: Константы, перечисления и структуры / Именованные константы / Предопределенные макроподстановки
Документация по MQL5: Константы, перечисления и структуры / Именованные константы / Предопределенные макроподстановки
  • www.mql5.com
//| Expert initialization function                                   | //| Expert deinitialization function                                 | //| Expert tick function                                             | //| test1                                                            |...
 
leonerd :
코드에서 property# 버전 으로 정의된 프로그램의 MQL5 버전 값을 가져오는 방법은 무엇입니까?

나는 이것을 이렇게 사용하고 다른 옵션을 찾지 못했습니다. 버전을 2번 등록해야 하는데 그리 어렵지 않습니다

 #property version      "23.25" // 16.04.2020
#define   version      "23.25"
 

안녕하세요 전문가 여러분.

이전 위치를 닫은 SELL과 동일한 막대에서 BUY 위치를 열 수 없는 코드의 오류가 어디에 있습니까?

규칙은 간단합니다(배우기):
1 항목 - 느린 표시기로 교차 0 + 빠름도 영역에 있습니다(매수/매도)

2 출구 - 빠른 표시기가 있는 횡단 0

 //+------------------------------------------------------------------+
//|                                                      TestDPO.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#include <Trade\Trade.mqh>
CTrade trade;

input int dpo_fast_period = 9 ;   // DPO Fast Period
input int dpo_slow_period = 40 ; // DPO Fast Period
input int magic = 1000 ;         // Magic советника
input ulong slippage = 10 ;         // Проскальзывание цены
input double volume = 0.1 ;       // размер позиции

int DPO_fast;                 // Хэндл для быстрого DPO
int DPO_slow;                 // Хэндл для медленного DPO


double fDPOVal[];                 //Динамический массив для хранения значений fast DPO
double sDPOVal[];                 //Динамический массив для хранения значений slow DPO

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {



   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---------------Задаем цены покупки и продажи------------------------
   double Ask= NormalizeDouble ( SymbolInfoDouble ( _Symbol , SYMBOL_ASK ), _Digits );
   double Bid= NormalizeDouble ( SymbolInfoDouble ( _Symbol , SYMBOL_BID ), _Digits );

   int signal= 0 ;   // сигнал на покупку, продажу

//--------------Проверка на новый бар
   if (!isNewBar())
       return ;
//--------------------------------------------------------------------

   DPO_fast= iCustom ( NULL , 0 , "Examples\\DPO" ,dpo_fast_period);   // получаем хэндлы для быстрого
   DPO_slow= iCustom ( NULL , 0 , "Examples\\DPO" ,dpo_slow_period); // получаем хэндлы для медленного


   ArraySetAsSeries (fDPOVal, true );               //задаем направление индексов массива
   ArraySetAsSeries (sDPOVal, true );
   if ( CopyBuffer (DPO_fast, 0 , 0 , 10 ,fDPOVal)< 0 )     // наполняем массив значений DPO fast
     {
       Alert ( "Ошибка копирования буфера индикатора fast DPO. Ошибка " , GetLastError ());
     }
   if ( CopyBuffer (DPO_slow, 0 , 0 , 10 ,sDPOVal)< 0 )     // наполняем массив значений DPO slow
     {
       Alert ( "Ошибка копирования буфера индикатора slow DPO. Ошибка " , GetLastError ());
     }

   double DPO_fast_c_value= NormalizeDouble (fDPOVal[ 1 ], 6 );   // запоминаем значение индикатора DPO fast на предыдущем баре
   double DPO_slow_c_value= NormalizeDouble (sDPOVal[ 1 ], 6 );   // запоминаем значение индикатора DPO slow на предыдущем баре
   double DPO_fast_p_value= NormalizeDouble (fDPOVal[ 2 ], 6 );   // запоминаем значение индикатора DPO fast на пред-предыдущем баре
   double DPO_slow_p_value= NormalizeDouble (sDPOVal[ 2 ], 6 );   // запоминаем значение индикатора DPO slow на пред-предыдущем баре

   if (DPO_slow_c_value> 0 && DPO_slow_p_value< 0 && DPO_fast_c_value> 0 )   // если медленный индикатор пересекает 0 снизу вверх и быстрый находится выше 0
      signal= 1 ;                                                           // сигнал на открытие покупки
   if (DPO_slow_c_value< 0 && DPO_slow_p_value> 0 && DPO_fast_c_value< 0 )   // если медленный индикатор пересекает 0 сверху вниз и быстрый находится ниже 0
      signal=- 1 ;                                                           // сигнал на открытие продажи
   if (DPO_fast_c_value> 0 && DPO_fast_p_value< 0 )                       // если быстрый индикатор пересекает 0 снизу вверх
      signal=- 2 ;                                                           // сигнал на закрытие продажи
   if (DPO_fast_c_value< 0 && DPO_fast_p_value> 0 )                       // если быстрый индикатор пересекает 0 сверху вниз
      signal= 2 ;                                                           // сигнал на закрытие покупки

switch (signal)
         {
         case - 1 :
         trade.Sell(volume, NULL ,Bid, 0 , 0 , NULL );
         break ;
         case 1 :
         trade.Buy(volume, NULL ,Ask, 0 , 0 , NULL );
         break ;
         case - 2 :
         trade.PositionClose( _Symbol ,slippage);
         break ;
         case 2 :
         trade.PositionClose( _Symbol ,slippage);
         break ;
	}
  }
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Как я собираю себе советника методом тыка Из этих...
 
Andrey.Sabitov :

안녕하세요 전문가 여러분.

이전 위치를 닫은 SELL과 동일한 막대에서 BUY 위치를 열 수 없는 코드의 오류가 어디에 있습니까?

규칙은 간단합니다(배우기):
1 항목 - 느린 표시기로 교차 0 + 빠름도 영역에 있습니다(매수/매도)

2 출구 - 빠른 표시기가 있는 횡단 0

모든 것이 올바르게 작동합니다. 시작 조건은 0선을 가로지르는 느린 표시기 이고 표시된 위치에서는 빠른 표시기만 0선을 넘었습니다.

특정 위치에서 포지션을 열려면 조건을 추가해야 하고, 같은 영역에서 느리게, 빠르게 0선을 넘습니다.

 
Andrey.Sabitov :

안녕하세요 전문가 여러분.

이전 위치를 닫은 SELL과 동일한 막대에서 BUY 위치를 열 수 없는 코드의 오류가 어디에 있습니까?

규칙은 간단합니다(배우기):
1 항목 - 느린 표시기로 교차 0 + 빠름도 영역에 있습니다(매수/매도)

2 출구 - 빠른 표시가 있는 횡단보도 0

당신은 큰 실수를 하고 있습니다: 당신은 각 틱에 두 개의 표시 를 만들고 있습니다!

 //--------------------------------------------------------------------

   DPO_fast= iCustom ( NULL , 0 , "Examples\\DPO" ,dpo_fast_period);   // получаем хэндлы для быстрого
   DPO_slow= iCustom ( NULL , 0 , "Examples\\DPO" ,dpo_slow_period); // получаем хэндлы для медленного

표시기 핸들은 OnInit에서 한 번만 인정되어야 합니다.


iCustom 도움말을 읽어보십시오.

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...