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

 
EQU :

그리고 다시 - code .. code .. Code is good .. 그러나 그것은 또한 - tactics, cyclics .. ;)

글쎄요, 차트에 새 막대 생성에 대한 메시지가 표시되지 않습니까? 인생 못믿어..

그걸로 이벤트를 만드는게 문제인가요? 그리고 적어도 미리 정해진 변수??

그리고 일반적으로 - 산더미 같은 코드를 감는 것보다 이벤트를 처리하는 것이 더 쉽습니다 .. 게다가 - 오류가 있는 경우(오류가 없는 프로그램 - 발생하지 마십시오!!!))))

나는 새로운 바가 하나의 이벤트라는 점에 절대적으로 동의합니다. 그리고 여기에는 https://www.mql5.com/en/forum/1031 스레드가 있습니다. 몇 년 동안 머리를 맞대고 ...

Z.Y. 나는 읽은 후에 새로운 막대가 전혀 나타나지 않을 수 있다는 것이 분명해질 것이라고 생각합니다 ... 구멍 ...

Обсуждение статьи "Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5"
Обсуждение статьи "Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5"
  • www.mql5.com
Обсуждение статьи "Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5".
 
EQU :

그리고 다시 - code .. code .. Code is good .. 그러나 그것은 또한 - tactics, cyclics .. ;)

음, 차트에 새 막대 생성에 대한 메시지가 표시되지 않습니까? 인생 못믿어..

그걸로 이벤트를 만드는게 문제인가요? 그리고 적어도 미리 정해진 변수??

그리고 일반적으로 - 코드의 산을 감는 것보다 이벤트를 처리하는 것이 더 쉽습니다 .. 게다가 - 오류가 있는 경우(오류가 없는 프로그램 - 발생하지 마십시오!!!))))

일반적으로 어떻게 상상하십니까? 20개의 타임프레임 x '시장 감시'의 심볼 수 및 각각에 대해 OnNewBar 이벤트가 생성됩니까? 그리고 각각을 처리해야 하고 어떤 기호와 시간 프레임이 속하는지 결정해야 합니다. 이제 선택이 있습니다. 고유한 NewBar 함수를 작성하고 그 안에 어떤 종류의 새 막대를 받고 싶은지 정의하십시오: 기호에 대한 모든 마침표, 현재 기간에 대한 모든 기호 또는 일부 특별한 경우. 특정 간단한 기능이 나타납니다. 이것은 검사가 많은 일반 OnNewBar 함수보다 낫습니다.
 

테스트할 때 오류가 발생합니다.

CTrade::PositionClose::OrderCheck: 잘못된 중지 요청
조언자는 그런 라인을 가지고 있습니다

변수 선언 (프로시저 내)

CTrade m_trade;

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

포지션을 닫다

m_trade.PositionClose(_Symbol, eSlippage);

왜 여기에 오류가 있습니까? CTrade::PositionClose::OrderCheck: 잘못된 중지 요청

잘못된 SL 및/또는 TP
TRADE_RETCODE_INVALID_STOPS

포지션을 청산할 때 정지는 무엇입니까? 또는 내가 뭔가를 이해하지 못합니까?

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
Prival :

나는 새로운 바가 하나의 이벤트라는 점에 절대적으로 동의합니다. 그리고 여기에는 https://www.mql5.com/en/forum/1031 스레드가 있습니다. 몇 년 동안 머리를 맞대고 ...

Z.Y. 나는 읽은 후에 새로운 막대가 전혀 나타나지 않을 수 있다는 것이 분명해질 것이라고 생각합니다 ... 구멍 ...

나는 감히 링크를 보았어.. 아마도 이것은 정말로 읽어야 할 것이다.. 여가 시간에..;)

Z.Y에 이런 이벤트를 하고 싶은 이유.. 노바 - 노 이벤트

 
Valmars :
일반적으로 어떻게 상상하십니까? 20개의 타임프레임 x '시장 감시'의 심볼 수 및 각각에 대해 OnNewBar 이벤트가 생성됩니까? 그리고 각각을 처리해야 하고 어떤 기호와 시간 프레임이 속하는지 결정해야 합니다. 이제 선택이 있습니다. 고유한 NewBar 함수를 작성하고 그 안에 어떤 종류의 새 막대를 받고 싶은지 정의하십시오: 기호에 대한 모든 마침표, 현재 기간에 대한 모든 기호 또는 일부 특별한 경우. 특정 간단한 기능이 나타납니다. 이것은 검사가 많은 일반 OnNewBar 함수보다 낫습니다.

20개의 시간 프레임.. ulong 매개변수의 경우 - 제한이 없습니다.. 1분에 한 번씩 전체 변수를 입력합니다. - 실제로, 어렵지 않습니다.

그리고 OnTik은 "'시장 감시'에서 x개의 기호를 살펴보고 각각에 대해 이벤트가 생성됩니다.."????

그리고 비트 단위 확인 - 저를 믿으십시오. 매우 빠른 것입니다 ..

그리고 이벤트가 있더라도

- 아무도 나에게 그것을 처리하도록 강요하지 않을 것입니다 - 불필요하게 ..

- "자신의 NewBar 함수를 작성하고 새 막대를 수신할 막대를 정확히 정의"하는 대신 _추가적으로 또는 _대신 아무 것도 방해하지 않습니다. - 필요한 경우..

 
Interesting :

예, 물론 모든 작업을 능숙하게 수행하지 않는 한 이제는 쉽게 수행할 수 있습니다. 개발자는 OnTrade()를 다시 작성하고 거기에 필요한 매개변수를 추가하기로 약속했습니다. 그들이 한다면 처리하기가 훨씬 더 쉬울 것입니다.

아무도 OnTick () 또는 OnTime()에서 그러한 상황을 즉석에서 처리하는 것을 귀찮게 하지 않습니다. 또는 OnTrade()에서 코드에서 직접 제어되지 않는 사용자 작업이나 거래 작업을 포착해야 하는 경우.

가벼움은 상대적인 개념이며 하나는 그램으로, 다른 하나는 톤으로 측정됩니다. 나는 Expert Advisor(내 코드를 그렇게 부를 수 있는 경우)에서 기술적으로 수행해야 했습니다. 왜냐하면 SIMPLY가 있는 옵션은 현재 언어에 존재하지 않지만 IMHO와 같이 매우 잘 존재할 수 있기 때문입니다. 그리고 코드가 비유적으로 100줄 더 길어지고 더 복잡해지기 시작했다는 사실에 큰 기쁨을 느끼지 못했습니다.

기본적으로 문제는 다음과 같습니다.

진드기가오고 표시기가 닫을 필요가 있음을 보여줍니다. 닫습니다

다음 틱이 오면 표시기가 닫을 필요가 있음을 보여주고 더 이상 무엇을해야할지 모르겠습니다. 위치가 매달려 있으며 물론 현재 상황을 알 수 있지만 다섯 번째를 통해 가리키다.

이 복잡성이 여전히 여기에 존재하는 이유를 이해하지 못합니까? 왜 onTrade() 이벤트에서 무슨 일이 일어났는지 이해하기 위해 엄청난 양의 코드를 작성하라는 요청을 받는지 이해가 되지 않습니다.

나는 단순함을 위해, 그렇지 않으면 슬퍼진다.

 
Vladix :

가벼움은 상대적인 개념이며 하나는 그램으로, 다른 하나는 톤으로 측정됩니다. 나는 Expert Advisor(내 코드를 그렇게 부를 수 있는 경우)에서 기술적으로 수행해야 했습니다. 왜냐하면 SIMPLY가 있는 옵션은 현재 언어에 존재하지 않지만 IMHO와 같이 매우 잘 존재할 수 있기 때문입니다. 그리고 코드가 비유적으로 100줄 더 길어지고 더 복잡해지기 시작했다는 사실에 큰 기쁨을 느끼지 못했습니다.

기본적으로 문제는 다음과 같습니다.

진드기가오고 표시기가 닫을 필요가 있음을 보여줍니다. 닫습니다

다음 틱이 오면 표시기가 닫을 필요가 있음을 보여주고 더 이상 무엇을해야할지 모르겠습니다. 위치가 매달려 있으며 물론 현재 상황을 알 수 있지만 다섯 번째를 통해 가리키다.

이 복잡성이 여전히 여기에 존재하는 이유를 이해하지 못합니까? 왜 onTrade() 이벤트에서 무슨 일이 일어났는지 이해하기 위해 엄청난 양의 코드를 작성하라는 요청을 받는지 이해가 되지 않습니다.

나는 단순함을 위해, 그렇지 않으면 슬퍼진다.

100줄도 안 되는 코드로 해냈습니다... :) 솔루션은 안정적이고 다중 통화에 즉시 적용됩니다.

 //+----------------------------------------------------------------------------+
// Функция контроля открытия ордера на текущем баре               MQL5         |
//-----------------------------------------------------------------------------+
bool ЕстьОрдернаТекущемБаре( ENUM_ORDER_TYPE тип)
  {
   ulong тикет;
   HistorySelect ( SeriesInfoInteger (СИМВОЛ, Period (), SERIES_LASTBAR_DATE ), TimeCurrent ());
   for ( int i= 0 ;i< HistoryDealsTotal ();i=i+ 1 )
     {
      тикет= HistoryDealGetTicket (i);
       if ( HistoryDealGetString (тикет, DEAL_SYMBOL )!=СИМВОЛ || HistoryDealGetInteger (тикет, DEAL_ENTRY )== DEAL_ENTRY_STATE ) // || HistoryDealGetInteger(тикет,DEAL_MAGIC)!=MAGIC
         continue ;
       if ( HistoryDealGetInteger (тикет, DEAL_TYPE )==тип || HistoryDealGetInteger (тикет, DEAL_TYPE )== DEAL_ENTRY_INOUT )
         return (true);
     }
   return (false);
  }
Advisor가 중단되는 기간 대신 원하는 기간을 지정할 수 있습니다. 즉, 주문은 기간에 한 번만 배치됩니다.

음, 거래 요청 후 30초 동안 거래 요청을 금지하는 지연을 만들어야 합니다(예:). 그렇지 않으면 다음 틱의 내역에 주문이 나타나지 않을 수 있습니다.
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5
 
Valmars :
일반적으로 어떻게 상상하십니까? 20개의 타임프레임 x '시장 감시'의 심볼 수 및 각각에 대해 OnNewBar 이벤트가 생성됩니까? 그리고 각각을 처리해야 하고 어떤 기호와 시간 프레임이 속하는지 결정해야 합니다. 이제 선택이 있습니다. 고유한 NewBar 함수를 작성하고 그 안에 어떤 종류의 새 막대를 받고 싶은지 정의하십시오: 기호에 대한 모든 마침표, 현재 기간에 대한 모든 기호 또는 일부 특별한 경우. 특정 간단한 기능이 나타납니다. 이것은 검사가 많은 일반 OnNewBar 함수보다 낫습니다.

표준 솔루션에 대해 이야기하면 모든 것이 다음과 같아야 합니다.

1. 이벤트가 열린 차트, 기간 및 기호에 첨부됩니다. 새 막대가 나타날 때 이벤트가 시작되어야 합니다(구멍은 무시됨).

2. 이벤트 처리 는 별도의 터미널 스레드(또는 스레드)에서 발생해야 합니다.

추신

이 같은. 물론 이것은 많은 기능을 고려하지 않은 대략적인 근사치입니다 ...

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 

Vladix :

기본적으로 문제는 다음과 같습니다.

진드기가오고 표시기가 닫을 필요가 있음을 보여줍니다. 닫습니다

다음 틱이 오면 표시기가 닫을 필요가 있음을 보여주고 더 이상 무엇을해야할지 모르겠습니다. 위치가 매달려 있으며 물론 현재 상황을 알 수 있지만 다섯 번째를 통해 가리키다.

이 복잡성이 여전히 여기에 존재하는 이유를 이해하지 못합니까? 왜 onTrade() 이벤트에서 무슨 일이 일어났는지 이해하기 위해 엄청난 양의 코드를 작성하라는 요청을 받는지 이해가 되지 않습니다.

나는 단순함을 위해, 그렇지 않으면 슬퍼진다.

아마도 개발자들은 OnTrade()에 매개변수를 추가할 것입니다. 적어도 그들은 그것에 대해 생각했습니다. 내가 아는 한, 이것에 대한 특정 진술도 있습니다.
 
Dmitriy2 :

100줄도 안 되는 코드로 해냈습니다... :) 솔루션은 안정적이고 다중 통화에 즉시 적용됩니다.

Advisor가 중단되는 기간 대신 원하는 기간을 지정할 수 있습니다. 즉, 주문은 기간 동안 한 번만 배치됩니다.

음, 거래 요청 후 30초 동안 거래 요청을 금지하는 지연을 만들어야 합니다(예:). 그렇지 않으면 다음 틱의 내역에 주문이 나타나지 않을 수 있습니다.

지연 설정 - 예, 수락합니다. 몇 줄의 코드가 필요합니까? 그리고 다중 통화에 대해 이야기한다면 각각의 지연을 고려해야합니다. 그렇죠?

이 문제를 해결하는 코드를 작성했습니다. 나는 단지 그를 좋아하지 않는다, 미안하다, 너와 같다. 그리고 요점은 편견이 아니라 단순하고 우아한 다른 옵션이 없다는 것입니다.

사유: