MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 813

 
WinProject :
좋은 저녁, 말씀해주세요. 나는 그들의 텍스트 .csv 파일에서 FileOpen을 읽고 있습니다. 파일의 각 줄에는 세 가지 값이 있습니다. 즉, 악기, 날짜(내림차순) 및 가격입니다. 마지막 날짜 가격 주석(이것이 첫 번째 줄)을 얻고 싶지만 파일은 항상 끝까지 읽고 가장 오래된 가격 주석(마지막 줄부터)을 얻습니다. 해결 방법 없이 주석의 첫 번째 줄에서 가격 값을 얻는 방법은 무엇입니까?

파일 찾기()

Документация по MQL5: Файловые операции
Документация по MQL5: Файловые операции
  • www.mql5.com
Из соображений безопасности в языке MQL5 строго контролируется работа с файлами. Файлы, с которыми проводятся файловые операции средствами языка MQL5, не могут находиться за пределами файловой "песочницы". общая папка всех установленных на компьютере терминалов  – обычно расположена в каталоге C:\Documents and Settings\All Users\Application...
 
Igor Makanu :

각 브로커에는 자체 견적 공급자가 있으며 종종 여러 공급자와 견적 평활 알고리즘이 있습니다.

일반적으로 - 실제 틱이 필요한 경우 TS를 MQL5로 전송합니다. - 실제 틱에 대한 테스트가 있으므로 테스트 시 시간 절약

인용 평활화 알고리즘에 대해 간략히 알려주세요. mql5에서는 틱으로 히스토리에 대한 TS를 테스트할 수 있습니다. 결과는 재 인용 과 공백을 고려하여 일대일이지만, 재인용과 공백은 물론 Bid Ask를 고려하여 틱으로 테스트할 수 있습니까?

 
Seric29 :

인용 평활화 알고리즘에 대해 간략히 알려주세요. mql5에서는 틱으로 히스토리에 대한 TS를 테스트할 수 있습니다. 결과는 재인용과 공백을 고려하여 일대일이지만, 재인용과 공백은 물론 Bid Ask를 고려하여 틱으로 테스트할 수 있습니까?

모든 정보는 약 6-8년 전에 관리자로부터 메시지를 검색하여 tiki에 대한 이 포럼에서 공개적으로 사용할 수 있습니다.

테스트 품질에 대해 - 기사

 
Alexey Viktorov :

반대 마감 볼륨을 열고 OrderCloseBy를 적용하려고 하시겠습니까?

인사말. 말해줘, 제발, 내가 뭘 잘못하고 있니?

OrderCloseBy()에서 오류 3이 발생합니다.

ERR_INVALID_TRADE_PARAMETERS

잘못된 매개변수

코드 예제

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict


datetime time; int ticket_buy; int ticket_sell; 
bool open= false ; bool close= false ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
ticket_sell= OrderSend ( NULL , OP_SELL, 0.1 , Bid, 0 , 0 , 0 , "" , 0 , 0 , Red);  

time= TimeCurrent ();
//if (Digits() ==3 || Digits()==5) {trailingStep*=10; }
   return ( INIT_SUCCEEDED );
  }
void OnDeinit ( const int reason)
  {
//---
   
  }
void OnTick (){
if (!open && TimeCurrent ()>=time+ 2600 ){
   ticket_buy= OrderSend ( NULL , OP_BUY, 0.1 , Ask, 1 , 0 , 0 , "buy order" , 0 , 0 , Blue);
   open= true ;
}
if (!close && TimeCurrent ()>=time+ 3000 ){
   if (OrderCloseBy(ticket_buy, ticket_sell , Black)){ }
   close= true ;
}

} //+------------------------------------------------------------------+
 
Andrey Sokolov :

인사말. 말해줘, 제발, 내가 뭘 잘못하고 있니?

OrderCloseBy()에서 오류 3이 발생합니다.

ERR_INVALID_TRADE_PARAMETERS

잘못된 매개변수

코드 예제

코드가 테스터에서 작동하고 OrderSend() 수정, 정규화된 가격 및 로트가 없습니다.

두 번째 조건 - 모든 브로커가 OrderCloseBy() 사용을 허용하는 것은 아닙니다. 이것이 오류의 주요 원인이라고 생각합니다.

 
Igor Makanu :

코드는 테스터에서 작동합니다.

그것들은 당신을 위해 닫힙니다, 맞죠? 당신의 브로커는 무엇입니까? 나는 알파가있다
 
Igor Makanu :

OrderSend() 정리, 정규화된 가격 및 로트가 없습니다.


여기에서 무엇을 정규화해야 하는지, 수학 연산이 없을 때 그 이유가 무엇인지 잘 모르겠습니다.
 
Andrey Sokolov :
여기에서 무엇을 정규화해야 하는지, 수학 연산이 없을 때 그 이유가 무엇인지 잘 모르겠습니다.

정규화된 가격을 서버에 보내는 데 익숙해져야 하기 때문에 이제 주문이 전송되었습니다. 내일이 아니라 지속적으로 실수를 찾을 것입니다.

어렵네요 뭐가 들어있나요? 어려운 경우 여기에 자신을 위한 사본이 있습니다.

ticket_sell= OrderSend ( _Symbol , OP_SELL, 0.1 , Bid, 10 ,
                     NormalizeDouble ( 0.0 , _Digits ), NormalizeDouble ( 0.0 , _Digits ), "" , 0 , 0 , clrRed );  

수학적 연산은 그것과 아무 관련이 없습니다. 새 빌드에서 터미널의 이상한 동작이 사용되었습니다. 개발자는 모든 질문에 썼습니다. 코드를 올바르게 작성하십시오. 맞습니다)))

Metaquot 서버에서 코드를 확인했습니다. 모든 것이 작동합니다.

추신: 0은 0.0이 아니므로 예상한 결과가 아닐 수 있습니다. 또한 버그를 찾지 않는 것도 좋은 습관입니다.)

 
Igor Makanu :

두 번째 조건 - 모든 브로커가 OrderCloseBy() 사용을 허용하는 것은 아닙니다. 이것이 오류의 주요 원인이라고 생각합니다.

일반적으로 Alpari와 다른 사람들이 지원하지 않는 경우 자신을 작동하지 않는 것으로 표시하기 위해 전혀 사용하지 않는 것이 더 낫다는 것을 올바르게 이해합니다.

 
Andrey Sokolov :

일반적으로 Alpari와 다른 사람들이 지원하지 않는 경우 자신을 작동하지 않는 것으로 표시하는 데 사용하지 않는 것이 더 낫다는 것을 올바르게 이해합니다.

작동 기능

아아, 각 서버의 설정을 확인해야 합니다 - 보편적인 솔루션이 거의 없습니다(알프스에서는 정지 수준이 여전히 = 0이고 후행에 놀랄 수도 있습니다)

내가 틀리지 않았다면, 당신은 MarketInfo()에서 서버가 포지션을 닫기 위한 카운터 오더를 주는지 여부를 결정하기 위한 요청이었습니다.