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

 
Vitaly Muzichenko :

불행히도, 나는 기사를 보지 않았고, 아마도 다른 누군가가 당신에게 말할 것입니다.

원하는 설정 가격을 입력할 수 없기 때문에 주문을 할 수 없습니다. 제비도 마찬가지입니다.

마우스를 넣었습니다.

  • 위 가격 클릭+Ctrl - 매도 한도
  • 가격 아래 클릭 + Ctrl - 구매 한도
  • 위 가격 클릭+Ctrl+Shift - Buy Stop
  • 가격 아래 클릭+Ctrl+Shift - 매도 스톱
시프트로 BuyStopLimit 및 SellStopLimit을 설정할 수도 있습니다.
 
Artyom Trishkin :

마우스를 넣었습니다.

  • 위 가격 클릭+Ctrl - 매도 한도
  • 가격 아래 클릭 + Ctrl - 구매 한도
  • 위 가격 클릭+Ctrl+Shift - Buy Stop
  • 가격 아래 클릭+Ctrl+Shift - 매도 스톱
시프트로 BuyStopLimit 및 SellStopLimit을 설정할 수도 있습니다.

이 문서 https://www.mql5.com/ru/articles/62의 제어판이 테스터에서 작동합니까(버튼만 해당)?

Создание активных панелей управления на MQL5 для торговли
Создание активных панелей управления на MQL5 для торговли
  • 2010.04.15
  • Евгений
  • www.mql5.com
Удобство имеет большое значение в работе, а тем более в работе трейдера, где скорость и точность решают многое. При подготовке терминала к работе каждый настраивает своё рабочее место максимально комфортно для себя, чтобы в максимально короткий срок можно было совершить анализ и войти в рынок. Но реальность такова, что разработчики не могут...
 
Sergey Savinkin :

이 문서 https://www.mql5.com/ru/articles/62의 제어판이 테스터에서 작동합니까(버튼만 해당)?

그러니 시도해보십시오 - 무엇이 당신을 멈추게합니까?

방금 시각화 도우미에 직접 지연을 넣는 방법을 썼습니다.

 
Artyom Trishkin :

그러니 시도해보십시오 - 무엇이 당신을 멈추게합니까?

방금 시각화 도우미에 직접 지연을 넣는 방법을 썼습니다.

나는 단지 노력하고있다. 나는 시간을 낭비하고 싶지 않았고 로봇 작업에 패널이 필요하지 않으며 테스트를 위해서만 필요합니다. 따라서 나는 그 주제를 자세히 공부할 계획이 없었다.

 
좋은 기사지만 테스터에서 OnChartEvent() 이벤트가 호출되지 않고 버튼이 작동하지 않습니다. 포럼 https://www.mql5.com/en/forum/42817/page2에서 문제에 대한 해결책을 찾았습니다.
Использование переменных в событии OnChartEvent индикатора в тестере
Использование переменных в событии OnChartEvent индикатора в тестере
  • 2016.02.25
  • www.mql5.com
При тестировании в эксперте можно обрабатывать пользовательские события с помощью функции OnChartEvent(), но в индикаторах эта функция в тестере не вызывается.
 

아래 코드에서 c close[i-1]를 close[i-2]로 변경하면 Array of Range가 발생하는 이유를 알려주세요. 코드는 MQL5에 대한 책에 따라 엄격하게 작성되었지만 가격이 2셀 이상 이동할 때 버퍼가 범위를 벗어나는 이유는 설명하지 않습니다.

  {
   int values_to_copy;
   int start;
   int calculated= BarsCalculated (iBands1_handle);

   
   if (calculated <= 0 )
   {
     return ( 0 );
   }
   if (prev_calculated== 0 || calculated!=bars_calculated)
   {
    start= 1 ;
     if (calculated> rates_total) values_to_copy=rates_total;
     else values_to_copy=calculated;
    }
     else
    {
   start=rates_total- 1 ;
   values_to_copy= 1 ;
   }
   
   if (!FillArrayFrom_iBands1_handleBuffer(Base,Upper,Lower,iBands1_handle,values_to_copy)) return ( 0 );

   for ( int i=start; i <rates_total &&! IsStopped ();i++)
   {
     Print ( "C " , close[i- 2 ]);
   }
 
clickaider :

아래 코드에서 c close[i-1]를 close[i-2]로 변경하면 Array of Range가 발생하는 이유를 알려주세요. 코드는 MQL5에 대한 책에 따라 엄격하게 작성되었지만 가격이 2셀 이상 이동할 때 버퍼가 범위를 벗어나는 이유는 설명하지 않습니다.

내가 이해하는 한, 우리는 지표에 대해 이야기하고 있습니다. 따라서 -timeseries 배열 " close "에 액세스하는 두 가지 경우를 고려하십시오. (1) " start "가 "1"과 같을 때 일어나는 일과 (2) " start "가 "rate_total-1"과 같을 때 일어나는 일.

케이스 (1) 및 케이스 (2)에 대해 "close[i-2]"를 수행하려고 하면 결과 배열 인덱스 " close "를 염두에 두고 계산하십시오.

 
Vladimir Karputov :

내가 이해하는 한, 우리는 지표에 대해 이야기하고 있습니다. 따라서 -timeseries 배열 " close "에 액세스하는 두 가지 경우를 고려하십시오. (1) " start "가 "1"과 같을 때 일어나는 일과 (2) " start "가 "rate_total-1"과 같을 때 일어나는 일.

케이스 (1) 및 케이스 (2)에 대해 "close[i-2]"를 수행하려고 하면 결과 배열 인덱스 " close "를 염두에 두고 계산하십시오.

감사합니다. 확인했습니다. start = 1 값에 1보다 큰 숫자를 입력해야 했습니다. 디버깅을 통해 다시 계산을 시작할 때 가까운 배열이 셀에서 값을 가져오려고 할 때 오류가 발생하는 것으로 나타났습니다. 아직 등장하지 않았습니다.

 
배열에 정보를 쓴 다음 거기에서 재생산한 다음 필요한 경우 다시 덮어쓰지만 전체는 아니지만 특정 셀을 덮어쓰는 방법을 알려주세요. 예를 들어 거래를 종료할 때 거래에 대한 정보가 삭제됩니다. 핍 단위의 2차원 개방 시간과 양초 길이의 배열입니다. 이 메커니즘은 매우 흥미롭습니다. 거기에 사이클을 삽입하면 아주 좋을 것입니다. 이 예를 사용하여 더 높은 수학, 즉 삼중 적분을 사용하는 Expert Advisor를 만들고 싶습니다. x와 y가 가격과 시간을 알고 있다고 가정하고 z를 찾습니다. 이 경우에는 그렇습니다. 그리고 이것은 비밀입니다. 양해 해 주셔서 감사합니다 .
 
또 다른 질문 - 이 코드 에 종가 가 라인 위에 있도록 조건을 넣으면(이 조건이 프로그램이 시작되기 전에 실제로 존재한다고 가정해 봅시다), 코드는 예상대로 작동하지만 반대 조건을 작성하면, 즉 코드를 실행하기 전에 현재 양극성인 조건에서는 디버그 데이터가 잘못될 것입니다. 왜 이런 일이 일어나는지 말해줘? 결국 이것은 조건문에서의 비교일 뿐입니다. 이것이 코드에 해로운 영향을 미치는 이유는 무엇입니까?
   for ( int i = start; i < rates_total &&! IsStopped ();i++)
   {
     if (close[i] > Upper[i])
     Print ( "C " , close[i]);
    
예: 만약
 if (close[i] < Upper[i])

디버깅 결과는 다음과 같습니다.

데이터가 정확하며 가격 업데이트 비율과 동일한 간격으로 업데이트됩니다.

그러나 초기 조건을 다음과 같이 설정하면:

 if (close[i] > Upper[i])

그러면 결과가 올바르지 않습니다.

즉, 종가 값이 더 이상 현재 가격과 일치하지 않습니다.


왜 이런 일이 발생하는지 이해할 수 없습니다.

게시물 의 주요 코드 블록  
사유: