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

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MQL4에 대한 모든 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론

타라스 슬로보디아닉 , 2018.10.07 09:47

예시로 쓰고 있습니다)

기호를 기억하는 것이 불필요한 경우 예, 기억할 수 없습니다.

이름이 차트 ID뿐인 경우 불필요한 변수를 삭제하는 방법은 무엇입니까?
(자주 사용하면 많은 변수가 입력됩니다)

접두사가 없는 경우 - 동일한 경우 불필요한 변수를 제거하는 방법은 무엇입니까?


= 예시로 쓰고 있습니다)

글쎄, 탁하지 않은 의식의 확장을 위해서라면, 예, 좋은 예를 배우기 위해 :-)

= 이름이 차트 ID일 경우 불필요한 변수를 삭제하는 방법은 무엇입니까?

왜 아예 삭제합니까? 예를 들어 마침표만 저장해야 하는 경우 이름 = 접두사 + 기호로 충분합니다. 하나의 GP가 완전히 생략될 수 있다는 가정이 있습니다. 차트에서 한 프레임 변경 작업만 수행하면 다음 차트로 이동하기 전에 종료되고 기간이 다시 폴링되고 GP를 덮어씁니다. 이 경우 함정이 있습니까?

 
Taras Slobodyanik :

내 코드는 작동하지만 귀하의 코드가 표시되지 않습니다.
제발)

그래서 차트와 전역 변수 목록 0에 스크립트를 던졌습니다.
 
inter78 :
그래서 차트와 전역 변수 목록 0에 스크립트를 던졌습니다.

당신은 체커 또는 갈?)
목록을 시각적으로 보는 것은 두 배의 박자와 같은 긴 박자를 보는 것입니다. abracadabra 또는 NaN이 있습니다.

 
psyman :

왜 아예 삭제합니까? 예를 들어 마침표만 저장해야 하는 경우 이름 = 접두사 + 기호로 충분합니다. 하나의 GP가 완전히 생략될 수 있다는 가정이 있습니다. 차트에서 한 프레임 변경 작업만 수행하면 다음 차트로 이동하기 전에 종료되고 기간이 다시 폴링되고 GP를 덮어씁니다. 이 경우 함정이 있습니까?

그것은 모두 목표에 달려 있습니다

표시기(또는 무엇이든)가 하나의 사본, 하나의 기호에서 작동하고 다른 누구도 동일한 변수를 만들지 않는다면 물론 귀찮게 할 수 없습니다.

 
Taras Slobodyanik :

당신은 체커 또는 갈?)
목록을 시각적으로 보는 것은 두 배의 박자와 같은 긴 박자를 보는 것입니다. abracadabra 또는 NaN이 있습니다.

이제, 당신이 나에게 쓴 것을 이제 이해했다면, 나는 당신을 귀찮게 하지 않을 것입니다. 내 프로그래밍 지식이 0이 되는 경향이 있다는 것뿐입니다. 하지만 ChartID를 왜곡 없이 전역 변수 에 넣을 수 있다면 기쁠 것입니다. 고맙습니다.
 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MQL4에 대한 모든 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론

타라스 슬로보디아닉 , 2018.10.06 21:47

       string name=prefix_gv+ "Price_" + IntegerToString (num, 4 , '0' );
       if ( GlobalVariableCheck (name) || GlobalVariableTemp (name))
         GlobalVariableSet (name, Line_ALL[i].price);
      

어떻게 이름 변수에 텍스트 문자열의 값이 할당되고 Line_ALL[i].price가 거기에 기록되지만 이미 GPU로 작성되어 있다는 것이 어떻게 그렇게 영리하게 밝혀졌는지 설명하십시오.

이론적으로 이름은 덮어쓰기만 하면 됩니다.

UPD

GPU 이름을 저장하려면 일반적인 변수가 필요합니다. 변수 이름은 같을 수 있습니다. 그래서?

 
psyman :

어떻게 이름 변수에 텍스트 문자열의 값이 할당되고 Line_ALL[i].price가 거기에 기록되지만 이미 GPU로 작성되어 있다는 것이 어떻게 그렇게 영리하게 밝혀졌는지 설명하십시오.

이론적으로 이름은 덮어쓰기만 하면 됩니다.

UPD

GPU 이름을 저장하려면 일반적인 변수가 필요합니다. 변수 이름은 같을 수 있습니다. 그래서?

name 변수에 이름(텍스트)이 생성되고, 이 이름으로 Global Variable 이 생성되고 이 GP에 값이 기록됩니다.
즉, GPU 목록이 생성되고 어레이의 일부가 GPU 목록에 저장됩니다.

하나

 
inter78 :
이제, 당신이 나에게 쓴 것을 이제 이해했다면, 나는 당신을 귀찮게 하지 않을 것입니다. 내 프로그래밍 지식이 0이 되는 경향이 있다는 것뿐입니다. 하지만 ChartID를 왜곡 없이 전역 변수 에 넣을 수 있다면 기쁠 것입니다. 고맙습니다.

내 코드는 임시 전역 변수에 longchartID를 씁니다.

시각적으로 F3 키를 누르면 0(또는 다른 우수한 값)이 표시됩니다.
이것은 터미널이 이것이 이중 값이라고 생각하고 그것을 보여주려고 하기 때문에 발생하지만 우리는 그것을 길게 빼버렸습니다. 이것은 완전히 다른 숫자 형식입니다.

이 값이 일반 double로 다시 읽혀지면 거기에 무엇이 있는지 명확하지 않습니다.
내 코드로 읽히면 긴 항목이 다시 나타납니다(저장된 것과 동일한 항목).
터미널 창에서 수동으로 이 변수를 찌르면 터미널이 대체를 감지하므로 0으로 재설정됩니다.

 
Taras Slobodyanik :

name 변수에 이름(텍스트)이 생성되고, 이 이름으로 Global Variable 이 생성되고 이 GP에 값이 기록됩니다.
즉, GPU 목록이 생성되고 어레이의 일부가 GPU 목록에 저장됩니다.


하지만 이 조건은

 GlobalVariableCheck (name) || GlobalVariableTemp (name)

왜요?

"GlobalVariableTemp가 임시 전역 변수를 생성하려고 합니다"의 정의가 명확하지 않습니다.

GlobalVariableSet이 생성할 때 생성을 시도하는 이유는 무엇입니까?

UPD

OnInit에서 다음과 같이 썼습니다.

   string    GV_prefix= "ZZ_" ;
   string    ctime=GV_prefix+ _Symbol + "_" + ChartID ();
   GlobalVariablesDeleteAll ( NULL , 0 );
     if ( GlobalVariableCheck (ctime) || GlobalVariableTemp (ctime))
       GlobalVariableSet (ctime, Period ());

OnChartEvent를 호출합니다.

 if ( GlobalVariableGet (ctime)!= Period ()) 

이에 대한 응답으로 'ctime' - 선언되지 않은 식별자 메시지가 나타납니다.


 
psyman :

하지만 이 조건은

왜요?

GlobalVariable Check() - 이미 그러한 변수가 있는지 확인하고 그렇지 않은 경우
GlobalVariableTemp() - 다음 실행 시 삭제될 임시 변수를 생성합니다.

사이먼 :

UPD

OnInit에서 다음과 같이 썼습니다.

OnChartEvent를 호출합니다.

응답으로 'ctime'이라는 메시지가 나타납니다. 선언되지 않은 식별자입니다.

문자열은 OnInit 위에서 전역 코드 변수 로 이동해야 합니다.

또는 OnChartEvent 에 추가

 string    GV_prefix= "ZZ_" ;
string    ctime=GV_prefix+ _Symbol + "_" + ChartID ();