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

 
lego9955 오류 처리가 더 정확합니다. 고마워요!

만일을 대비하여 여러 줄로 작성하는 것보다 제가 보여 드린 것처럼 한 줄로 작성하는 것이 더 쉽습니다.

 
Alexey Petrov #:

안녕하세요,

마켓에서 기성 솔루션을 검색해 보세요 - https://www.mql5.com/fr/search#!keyword=money%20management&module=mql5_module_market

프리랜서에서 맞춤형 솔루션을 주문할 수도 있습니다 - https://www.mql5.com/fr/job

안녕하세요, 회신 해 주셔서 감사합니다. 내 기대에 맞는 스크립트를 만들 수 있었지만 불행히도 여전히 이해하거나 수정할 수없는 두 가지 오류가 있습니다. 약간의 도움을 위해 누구에게 연락해야하는지 아십니까? 컴파일 후 오류로 등록되는 두 줄의 코드 일뿐입니다 ...
 
새해 복 많이 받으세요! MT5 10과 11 중 어떤 윈도우가 더 낫나요? AMD 5900X 노트북에 앉아서
 

안녕하세요, 여러분 새해 복 많이 받으세요! 내 스크립트가 시장의 지표를 사용한다는 것을 어떻게 알 수 있습니까?

보다 구체적으로:
시장에 "자동 추세선"이라는 지표가 있습니다. 이를 기반으로 로봇을 만들고 싶은데, 가격이 지표의 이 선을 넘을 때(그리고 지정된 추가 조건에서) 포지션을 열거나 닫는 로봇을 만들고 싶습니다.

 
Rad89 #:

안녕하세요, 새해 복 많이 받으세요! 내 스크립트가 시장의 지표를 사용한다는 것을 어떻게 알 수 있습니까?

보다 구체적으로:
시장에 "자동 추세선"이라는 지표가 있습니다. 이를 기반으로 로봇을 만들고 싶은데, 가격이 지표의 이 선을 넘을 때(그리고 지정된 추가 조건에서) 포지션을 열거나 닫는 로봇을 만들고 싶습니다.

나 자신에게는 문제 없습니다. 시장이나 코드베이스의 경우 시장에서 다른 사람의 공예품을 사용할 수 없습니다 ...

 
Alexey Viktorov #:

자신은 문제없습니다. 마켓플레이스나 CodeBase에서 다른 사람의 창작물을 사용할 수 없습니다...

자신을 위해. 어떻게 해야 할지 모르겠어요. 오픈 소스에서 코드를 찾을 수 없어요. 또는 내 코드에 줄의 위치를 잡을 수 있도록 나사를 조이는 방법도 모르겠어요.

 

안녕하세요, @Rad89

iCustom()CopyBuffer() 함수가 필요합니다.

다음은 마켓에서 다운로드한 인디케이터를 Expert Advisor에 추가하는 예제입니다.

// Глобальная переменная для хендла индикатора
int tlHandle;

int OnInit() {
   // Создаем хендл индикатора
   tlHandle = iCustom(Symbol(), PERIOD_CURRENT, "Market\\Automatic Trendlines", false, 5, 15, clrRed, clrBlue, 2, "My Support", "My Resistance");
   
   // Можем добавить индикатор на график, если хотим. 
   // Для использования в расчетах это необязательно
   ChartIndicatorAdd(ChartID(), 0, tlHandle);

   // Вызовем один раз OnTick(), чтобы на выходных у нас что-то в логе отобразилось
   OnTick(); 
   
   return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason) {}

void OnTick() {
   // Объявляем массивы для буферов индикатора
   double tlBuffer0[], tlBuffer1[]; // ,tlBuffer1, ...
   
   int res;
   
   // Копируем нужное количество значений из индикаторных буферов в массивы
   res = CopyBuffer(tlHandle, 0, 0, 100, tlBuffer0);
   res = CopyBuffer(tlHandle, 1, 0, 100, tlBuffer1);
   
   // У разных индикаторов различное количество индикаторных буферов, 
   // числа из которых используются для построения линий, значков, цветовых меток на графике
   // Сколько их у данного индикатора и как используются их числа исследуйте самостоятельно
   
   // res = CopyBuffer(tlHandle, 2, 0, 100, tlBuffer2);
   
   // Пользуемся полученными значениями
   ArrayPrint(tlBuffer0);
   ArrayPrint(tlBuffer1);
}
Документация по MQL5: Технические индикаторы / iCustom
Документация по MQL5: Технические индикаторы / iCustom
  • www.mql5.com
iCustom - Технические индикаторы - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
안녕하세요. 열거형이 있습니다.
enum ENUM_NAME
  {
   ENUM_1,
   ENUM_jsdf
   ....
   ENUM_FEF;   
  };
가능한 모든 ENUM_NAME 값에 충분한 메모리가 있도록 (반복없이) E_NAME[] 배열에 메모리를 할당하는 방법은 무엇입니까?
ENUM_NAME     E_NAME[];

그리고 가능한 모든 값으로 E_NAME[] 을 초기화하는 방법은 무엇인가요?

 

안녕하세요, @pivomoe

열거형 항목에 숫자 값을 강제로 할당하지 않으려는 경우(예제로 판단하면 그렇지 않을 것입니다) 다음과 같이 할 수 있습니다:

// Объявляем перечисление
enum ENUM_NAME {
   ENAME_1,
   ENAME_JSDF,
   ENAME_ERT,
   ENAME_QWERTY,
   ENAME_FEF
};

// Обявляем константу, хранящую количество элементов перечисления
#define  ENUM_NAME_SIZE 5

// Массив для хранения элементов перечисления
ENUM_NAME     E_NAME[ENUM_NAME_SIZE];

int OnInit() {
   // Заполняем массив значениями, преобразуя к типу ENUM_NAME
   for(int i = 0; i < ENUM_NAME_SIZE; i++) {
      E_NAME[i] = (ENUM_NAME) i;
   }

   // Пользуемся массивом
   ArrayPrint(E_NAME);
   
   for(int i = 0; i < ENUM_NAME_SIZE; i++) {
      Print(EnumToString(E_NAME[i]));
   }
   
   return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason) {}

이 경우 열거형에 요소를 추가할 때 요소 수를 저장하는 상수도 변경해야 합니다.

또한 열거형 자체의 이름에만 ENUM_ 접두사를 사용하고 그 요소에는 다른 접두사를 사용하는 것이 좋습니다. 이 규칙은 모든 표준 MQL 열거형에 사용됩니다.

 
Yuriy Bykov #:

안녕하세요, @피보모에

열거형 항목에 숫자 값을 강제로 할당하지 않을 경우(예제로 판단하면 그렇지 않을 것입니다) 다음과 같이 할 수 있습니다:

이 경우 열거형에 항목을 추가할 때 항목 수를 저장하는 상수도 변경해야 합니다.

또한 열거형 자체의 이름에만 ENUM_ 접두사를 사용하고 그 요소에는 다른 접두사를 사용하는 것이 좋습니다. 이 규칙은 모든 표준 MQL 열거형에 사용됩니다.

도와주셔서 감사합니다. 수년 동안 ENUM을 사용해 왔기 때문에 도움말을 읽을 생각조차 하지 못했습니다.

사유: