찻주전자의 질문 - 페이지 130

 
옴... 계속 읽으십시오.
 

친절한!

Win7은 포럼에서 즉시 무언가를 찾지 못했습니다. 프로그램의 작업 디렉토리는 어떻습니까? 그것은 나에게 보였다. win7에서는 시작 시 일종의 임시 디렉토리가 생성됩니다. 전체 프로그램이 복사되는 곳이므로 MetaEditor로 작업할 때 나타납니다. 예를 들어 디스크 D에 포함 할 파일을 복사 했지만 메타에디터 창에는 아무것도 없습니다. "Open Folder"라는 메타에디터 창에서 C 드라이브의 임시 위치에 창이 나타납니다. 어떻게 될 것인가? 그것들을 동기화하거나 win7이 이러한 분리를 방지하는 방법은 무엇입니까?

고맙습니다!

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

친절한!

Win7은 포럼에서 즉시 무언가를 찾지 못했습니다. 프로그램의 작업 디렉토리는 어떻습니까? 그것은 나에게 보였다. win7에서는 시작 시 일종의 임시 디렉토리가 생성됩니다. 전체 프로그램이 복사되는 곳이므로 MetaEditor로 작업할 때 나타납니다. 예를 들어 디스크 D에 포함 할 파일을 복사 했지만 메타에디터 창에는 아무것도 없습니다. "Open Folder"라는 메타에디터 창에서 C 드라이브의 임시 위치에 창이 나타납니다. 어떻게 될 것인가? 그것들을 동기화하거나 win7이 이러한 분리를 방지하는 방법은 무엇입니까?

고맙습니다!

https://www.mql5.com/ru/forum/1111/page712#comment_173757
 
TheXpert :

1. 각 언어에는 고유한 범위가 있습니다. 일반적으로 언어가 "가장 진보된" 언어라고 말하는 것은 터무니없는 것입니다.

2. 어서! 뭐라고 부르든 무슨 상관이야? 본질은 거의 변하지 않습니다.

1. 알겠습니다. 동의합니다. 그런 다음 mql5는 가장 진보된 자동 거래 언어입니다. :) 더 홍보합시다.

2. 그럼, 제발, 제발!!

블라딕스 :
2. 나는 지지한다

우리는 매우 집합적으로 묻습니다!

:)

 
안녕 모두.
mql5 언어 에 대한 기본 질문이 여기에 있습니까? :-)
그렇지 않으면 토론으로 판단하면 지옥 같은 oop-nicknames 만 있습니다 ...
 
GameOver :
안녕 모두.
mql5 언어 에 대한 기본 질문이 여기에 있습니까? :-)
그렇지 않으면 토론으로 판단하면 지옥 같은 oop-nicknames 만 있습니다 ...

주전자는 다양한 크기로 제공됩니다. 글쎄, 당신은 거기에서 더 편안하다면 여전히 "라머를 위한" 가지를 만들 수 있습니다 ;-)
 
언어의 "단순함"을 믿으면서 이 구문적 창조를 마스터하려는 시도에서,
초등 대본을 그리기 시작했다.
karoch 하나의 발언과 하나의 질문.

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars= TerminalInfoInteger ( TERMINAL_MAXBARS );  , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

아아, 막대의 수를 무제한으로 설정하면 스크립트가 작동하지 않습니다. maxBars의 트위스트,
말한다 - 메모리 부족. 즉, 본질적으로 TerminalInfoInteger ( TERMINAL_MAXBARS )에 대한 호출이 획득됩니다.

쓸모가 없지만 여전히 특정 번호를 입력해야 합니다. 실생활에서 차트에 100,000개 이상의 막대가 없기 때문에 이상합니다.
실제로 로드된 막대의 수를 얻는 방법은 무엇입니까? 저작권은 바보같이 아무것도 반환할 시간이 없기 때문에 ...

두 번째 질문은 이것입니다.
기본 검사를 구현하려고 시도했습니다(μl4에서는 기본이었습니다).

      // delete bad day of week and bad bars
      if (TimeDayOfWeek(Time[i])<1 || TimeDayOfWeek(Time[i])>5 || (High[i]-Low[i])<10*Point) { errBar++; continue; }

포럼에서 검색(mql5 도움말에서 day_of_week, dayofweek는 아무 것도 제공하지 않았습니다 .. 매우 유용한 도움이 되었습니다!)은 이러한 구현으로 이어졌습니다.

MqlDateTime temp;
TimeToStruct(aBars[i].time,temp);
if (temp.day_of_week<1 || temp.day_of_week>5 ||  aBars[i].high-aBars[i].low<10*Point() ) {errBar++; continue;}

좋아? 한 줄 대신 세 줄 - 그리고 이것들은 기본 사항입니다.
어떻게 든 단순화 할 수 있습니까? 아니면 이제 모든 기본 작업 이 객체, 클래스, 중간 구조의 번거로운 생성으로 대체됩니까?

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

좋은 오후에요!

러시아 연방에 FORTS 및 MICEX 작업을 위한 터미널로 Metatrader를 제공하는 브로커가 있습니까?

 

다음보다 더 빠른 룰렛 알고리즘 버전을 제안하십시오.

 //——————————————————————————————————————————————————————————————————————————————
// Рулетка.
int Selection()
{
   //----------------------------------------------------------------------------
   int     i= 0 ,u= 0 ;
   double p= 0.0 ,start= 0.0 ;
   double           fit[][ 2 ];
   ArrayResize (fit,SizeOfPop);
   ArrayInitialize (fit, 0.0 );
   double delta=(Population[ 0 ][ 0 ]-Population[ 0 ][SizeOfPop- 1 ])* 0.1 -Population[ 0 ][SizeOfPop- 1 ];
   //----------------------------------------------------------------------------
   for (i= 0 ;i<SizeOfPop;i++)
  {
    fit[i][ 0 ]=start;
    fit[i][ 1 ]=start+ MathAbs (Population[ 0 ][i]+delta);
    start=fit[i][ 1 ];
  }
  p=RNDfromCI(fit[ 0 ][ 0 ],fit[SizeOfPop- 1 ][ 1 ]);

   for (u= 0 ;u<SizeOfPop;u++)
     if ((fit[u][ 0 ]<=p && p<fit[u][ 1 ]) || p==fit[u][ 1 ])
       break ;
     //--------------------------------------------------------------------------
   return (u);
}
//——————————————————————————————————————————————————————————————————————————————
배열이 매번 선언되지 않고 크기가 조정되지 않도록 함수에서 제거할 수 있다는 것은 분명하지만 더 혁신적인 솔루션이 필요합니다. :)
 
GameOver :
언어의 "단순함"을 믿으면서 이 구문적 창조를 마스터하려는 시도에서,
초등 대본을 그리기 시작했다.
karoch 하나의 발언과 하나의 질문.

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars= TerminalInfoInteger ( TERMINAL_MAXBARS );  , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

아아, 막대의 수를 무제한으로 설정하면 스크립트가 작동하지 않습니다. maxBars의 트위스트,
말한다 - 메모리 부족. 즉, 본질적으로 TerminalInfoInteger ( TERMINAL_MAXBARS )에 대한 호출이 획득됩니다.

쓸모가 없지만 여전히 특정 번호를 입력해야 합니다. 실생활에서 차트에 100,000개 이상의 막대가 없기 때문에 이상합니다.
실제로 로드된 막대의 수를 얻는 방법은 무엇입니까? 저작권은 바보같이 아무것도 반환할 시간이 없기 때문에 ...

그것을 알아 내려고 노력합시다. CopyRates() 함수의 경우 끝에서 두 번째 매개변수

 int               count,             // сколько копируем
저것들. 복사할 요소의 수입니다. 디자인에서 요소 수는 무제한입니다. 대략적으로 말하자면, 비현실적입니다. :) 아마도 작동하는 동안 메모리가 소진될 때까지 계속해서 메모리를 재분배하는 것입니다. TerminalInfoInteger ( TERMINAL_MAXBARS ) 가 아니라 보다 구체적인 값을 사용해 보십시오. MQL5 Reference / Timeseries and Indicators Access / Bars