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

 
Interesting :

ACCOUNT_TRADE_ALLOWED 가 반환한 값이 서버 측에서 생성된다는 것을 올바르게 이해하고 있습니까?

나는 (터미널에서) 상인의 어떤 행동도 이 값을 변경할 수 없다고 말해야 합니다...

추신

하지만 ACCOUNT_TRADE_EXPERT 가 변경하기를 꺼리는 것은 저에게는 정말 이상합니다...

그러면 터미널 메뉴의 "자동 거래" 버튼과 "자동 거래 허용" 체크박스는 어떤 영향을 줍니까?

조달청

이전 릴리스에서는 모든 것이 정확하고 모든 것이 작동하는 것처럼 보였지만 299에서는 무슨 일이 일어나고 있는지 이해하지 못합니다 ...


누가 ACCOUNT_TRADE_ALLOWED 및 ACCOUNT_TRADE_EXPERT를 파헤쳤 으며 가장 중요한 이유는 무엇입니까?


개발자 - 이미 미쳐버렸거나 "barabashki"가 터미널에 나타났습니다 ... :)

그리고 최신 릴리스에서는 아니지만 적어도 294에서는 (누가 그들을 거기에 가게 했습니까?) ... :(


작은 실험

릴리스 기간 294를 가져와 반환된 AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) 값의 변경을 제어하는 Expert Advisor 차트에 던졌습니다.

동시에 EA의 매개변수와 터미널("자동 거래" 버튼)에서 자동 거래를 비활성화합니다.

결과적으로 전문가의 로그에서 다음을 볼 수 있습니다.

여기에서 Expert Advisor의 작업 로그(초기화 중)와 타이머에서 ACCOUNT_TRADE_ALLOWED 값을 확인합니다.

우리는 색상으로 강조 표시된 모든 것에 관심이 있습니다(그 전에는 기호 목록이 특수 클래스에 로드되었습니다).

1. 타이머가 반환한 첫 번째 결과는 파란색으로 강조 표시됩니다(예상대로 거짓임).

2. 타이머가 반환한 다음 결과는 빨간색 으로 강조 표시되고 갑자기 사실로 밝혀졌습니다.

3. 녹색은 발생한 변경 사항에 대한 클래스( OnEventTimer 이벤트)의 반응입니다.

여기에서 클래스는 자동 거래가 허용된다는 것을 "이해"하고 이에 대해 기꺼이 알려줍니다(나는 그의 낙관론을 공유하지 않습니다).

또한 메시지가 두 번 표시됩니다(이전에는 관찰되지 않았지만). 메시지가 두 번 나타나는 것은 배타적인 OnEventTimer 이벤트에 확인이 있기 때문에 아이디어에서 제외됩니다.

 //Reading information on current parameters of the trade account
RealTradeAllowed = TradeAllowed(); //TradeAllowed
RealTradeExpert  = TradeExpert();   //TradeExpert
//Checking the status change of the use possibility automatic trade
   if ( varTradeAllowed!=RealTradeAllowed )
   //Processing the event TradeAllowed
  {
  OnTradeAllowed(RealTradeAllowed);
   //We write current status of the RealTradeAllowed in variable
   varTradeAllowed = RealTradeAllowed;
  }

4. 또한 타이머는 터미널에 무슨 일이 일어나든 항상 true를 반환합니다.

추신

AccountInfoInteger(ACCOUNT_TRADE_EXPERT)를 사용하면 상황이 훨씬 더 복잡해집니다. 타이머는 터미널 및 전문가 설정에 관계없이 ture를 반환합니다.

필요합니까?

 
AM2 :

저도 비슷한 질문에 관심이 있습니다. 계좌에 포지션을 개설하기에 충분한 자금이 없으면 어떻게 해야 합니까?

1. 고문의 거래를 금지합니다.

2. 오픈 포지션을 금지합니다.

3. 차트에서 전문가를 제거합니다.

3번은 ExpertRemove로 해결할 수 있습니다. 두 번째 요점은 내가하는 방법입니다.

1. 내가 아는 한, 고문에 대한 거래 금지는 PROGRAMMELY가 아니라 "자동 거래" 버튼과 "자동 거래 허용" 확인란을 사용하고 ACCOUNT_TRADE_ALLOWED 및 ACCOUNT_TRADE_EXPERT 제어를 사용하여 설정됩니다.

Expert Advisor에 필요한 매개변수를 추가한 다음 이 매개변수를 제어하여 프로그래밍 방식으로 거래 작업 을 금지할 수도 있습니다(예: 실제 계정 거래 금지).

사전 제어는 Expert Advisor의 초기화 중에 수행되며 작업 모드에서는 모든 것이 OnTimer() 또는 OnTick()에서 처리됩니다.

2. 포지션 개설(마감) 가능성 제어는 연결, 자동 거래 가능성 및 기타 조건(예: 특정 작업 수행 가능성 제어 주어진 기호에).

모든 조건을 제어하려면 bool 결과가 있는 하나의 함수를 만드는 것이 좋습니다.

예를 들어 다음과 같습니다.

 //Function IsTradePermit
bool IsTradePermit( bool TardeAllowed, bool Connect, double FreeMargin)
{
//----------------------------------------------------------------------------//
//Work variables
bool Result;
//----------------------------------------------------------------------------//

//Тут мы проверяем разрешена или нет торговля

//----------------------------------------------------------------------------//
return (Result);
//----------------------------------------------------------------------------//
}

3. 전문가는 극단적인 경우(자신의 작업을 수행할 수 없거나 더 이상 필요하지 않은 경우)에만 차트에서 제거되어야 합니다.

이것은 일반적으로 매우 극단적이고 드문 상황입니다. 예를 들어 Expert Advisor의 작업에 필요한 일부 파일을 찾을 수 없거나 Expert Advisor가 자체적으로 처리할 수 없는 오류가 발생한 경우에 사용해야 합니다.

추신

여러 Expert Advisors가 서로 다른 쌍에서 거래되고 하나의 Expert Advisor가 제어하는 경우 Expert Advisor를 제거하고 배치하는 것도 유용합니다(그는 Expert Advisor를 설치할 쌍과 삭제할 쌍을 결정)...

 
Interesting :

누가 ACCOUNT_TRADE_ALLOWED 및 ACCOUNT_TRADE_EXPERT를 파헤쳤 으며 가장 중요한 이유는 무엇입니까?


개발자 - 이미 미쳐가기 시작했거나 "barabashki" 가 터미널에 나타났습니다 ... :)

그리고 최신 릴리스에서는 아니지만 적어도 294에서는 (누가 그들을 거기에 가게 했습니까?) ... :(


작은 실험

릴리스 기간 294를 가져와 반환된 AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) 값의 변경을 제어하는 Expert Advisor 차트에 던졌습니다.

동시에 EA의 매개변수와 터미널("자동 거래" 버튼)에서 자동 거래를 비활성화합니다.

결과적으로 전문가의 로그에서 다음을 볼 수 있습니다.

여기에서 Expert Advisor의 작업 로그(초기화 중)와 타이머에서 ACCOUNT_TRADE_ALLOWED 값을 확인합니다.

우리는 색상으로 강조 표시된 모든 것에 관심이 있습니다(이전에는 기호 목록이 특수 클래스에 로드됨).

1. 타이머가 반환한 첫 번째 결과는 파란색으로 강조 표시됩니다(예상대로 거짓임).

2. 타이머가 반환한 다음 결과는 빨간색 으로 강조 표시되고 갑자기 사실로 밝혀졌습니다.

3. 녹색은 발생한 변경 사항에 대한 클래스( OnEventTimer 이벤트)의 반응입니다.

여기에서 클래스는 자동 거래가 허용된다는 것을 "이해"하고 이에 대해 기꺼이 알려줍니다(나는 그의 낙관론을 공유하지 않습니다).

또한 메시지가 두 번 표시됩니다(이전에는 관찰되지 않았지만). 메시지가 두 번 나타나는 것은 배타적인 OnEventTimer 이벤트에 확인이 있기 때문에 아이디어에서 제외됩니다.

4. 또한 타이머는 터미널에 무슨 일이 일어나든 항상 true를 반환합니다.

추신

AccountInfoInteger(ACCOUNT_TRADE_EXPERT)를 사용하면 상황이 훨씬 더 복잡해집니다. 타이머는 터미널 및 전문가 설정에 관계없이 ture를 반환합니다.

필요합니까?

ACCOUNT_TRADE_ALLOWED 및 ACCOUNT_TRADE_EXPERT 이상한 것을 얻었습니다. 이것은 DC에서 거래할 수 있는 권한입니다.

"자동 거래" 버튼 - TerminalInfoInteger(TERMINAL_TRADE_ALLOWED).

또한 MQL5InfoInteger( MQL5_TRADE_ALLOWED ) - EA/스크립트 거래 허가/금지

 
Swan :

ACCOUNT_TRADE_ALLOWED 및 ACCOUNT_TRADE_EXPERT 이상한 것을 얻었습니다. 이것은 DC에서 거래할 수 있는 권한입니다.

"자동 거래" 버튼 - TerminalInfoInteger(TERMINAL_TRADE_ALLOWED).

또한 MQL5InfoInteger( MQL5_TRADE_ALLOWED ) - EA/스크립트 거래 허가/금지

MQL5InfoInteger( MQL5_TRADE_ALLOWED )에 대해 알고 있습니다. 잘 작동하고 일반적으로 Expert Advisor에서 추적되며 MQL5_DLLS_ALLOWED 도 정상적으로 처리됩니다.

따라서 내가 이해하는 바와 같이:

TERMINAL_DLLS_ALLOWED 및 TERMINAL_TRADE_ALLOWED - 터미널 수준의 권한.

MQL5_DLLS_ALLOWED 및 MQL5_TRADE_ALLOWED - 전문가 수준 권한.

ACCOUNT_TRADE_ALLOWED 및 ACCOUNT_TRADE_EXPERT - 서버 수준의 권한입니다.

그런 다음 false를 true로 변경하는 것은 서버라고 가정합니다(이에 대한 메시지가 두 번 발행되는 이유는 명확하지 않지만).

 
Swann , 팁 주셔서 감사합니다. 모든 것을 고쳤습니다. 모든 것이 잘 작동하는 것 같습니다 ...
 

좋은 오후, 그런 문제가 있습니다. 시간별 차트를 스크롤하기 시작하고 특정 날짜에 일별 차트로 전환되고 15분이 지나면 시간별 또는 4시간별 차트로 전환되며 기록이 있는 파일을 삭제했습니다. 문서에 따라 저장되었지만 아무 것도 변경되지 않았습니다.

Документация по MQL5: Файловые операции / FileDelete
Документация по MQL5: Файловые операции / FileDelete
  • www.mql5.com
Файловые операции / FileDelete - Документация по MQL5
 
RomanIgorevi4 :

좋은 오후, 그런 문제가 있습니다. 시간별 차트를 스크롤하기 시작하고 특정 날짜에 일별 차트로 전환되고 15분이 지나면 시간별 또는 4시간별 차트로 전환되며 기록이 있는 파일을 삭제했습니다. 문서에 따라 저장되었지만 아무 것도 변경되지 않았습니다.

이 날짜 이전에는 서버에 일별 이력만 존재하므로(분 이력은 없음) 모든 시간대가 일별로 표시됩니다.
 

테스터의 최적화 알고리즘을 사용하는 동안 HistoryDealsTotal() 에 문제가 있음을 발견했습니다.

일반적인 백테스트 중에는 모든 것이 괜찮지만 최적화 세션에서 EA의 초기화 단계에서 HistoryDealsTotal() 은 이전 EA 실행의 거래 수를 반환합니다. 나중에 거래 단계에서 HistoryDealsTotal() 은 다시 0에서 시작합니다.

다음 코드 스니펫을 통해 이 문제가 발생했습니다.

     // constructor
     void MyClass() {
        _dealCnt = HistoryDealsTotal ();   // this is causing trouble!
        _orderCnt = OrdersTotal ();
        _positionCnt = PositionsTotal ();
        _historyOrderCnt = HistoryOrdersTotal ();
        ...
    }

이 문제를 해결하는 방법은 대신 0으로 초기화하는 것이지만 여전히 이 문제에 대한 공식 답변에 만족합니다. 일부 내부 변수가 너무 늦게 재설정되는 것처럼 보이기 때문입니다.

미리 감사드립니다!

Documentation on MQL5: Trade Functions / HistoryDealsTotal
Documentation on MQL5: Trade Functions / HistoryDealsTotal
  • www.mql5.com
Trade Functions / HistoryDealsTotal - Documentation on MQL5
 

안녕하세요, 다음 질문에 답변해 주십시오.

왜 MT5를 다운로드할 수 없는지, 설치 파일을 다운로드하고, 실행하고, 절반까지 다운로드하고, 중지하고, 다른 액세스 포인트로 이동하는 등의 작업을 수행합니다. 마지막에 오류

-읽기 실패 [12002]

그리고 그런 이야기는 터미널이나 윈도우를 아무리 다시 깔아도 계속 나오던데 지금은 3일째 안되네요

 

이 구성이 항상 0을 반환하는 이유를 알려주세요.

 MqlDateTime dt; Print (dt.min);

지금 몇 분인지 어떻게 알 수 있습니까? 예를 들어:

 MqlDateTime dt; if (dt.min)> 33 ...