mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 182

 
Konstantin Nikitin :

예를 들어 VDS의 모든 개체를 삭제합니다. 일정을로드하지 않는 것은 불필요합니다. 예, 그들은 쓸모가 없습니다. 저는 글로벌을 사용합니다. 그래서 그것은 모두 상황에 달려 있습니다.

봐, 내가 그들을 좋아하지 않는 것은 아니다.

  1. 그들과의 작업의 원자성 문제. 본질적으로 이것은 객체이고 이들과의 작업은 원자적이지 않지만 x86 자체에서 이중 읽기/쓰기는 내가 실수하지 않는다면 두 가지 명령이지만 부두에는 이에 대해 침묵이 있습니다.
  2. 프로그램 외부의 변수 가용성.
1번 항목이 문서 품질에 대해 더 투덜거린다면 2번 항목은 이미 심각한 것입니다.
 
Vladimir Simakov :

봐, 내가 그들을 좋아하지 않는 것은 아니다.

  1. 그들과의 작업의 원자성 문제. 본질적으로 이것은 객체이고 이들과의 작업은 원자적이지 않지만 x86 자체에서 이중 읽기/쓰기는 내가 실수하지 않는다면 두 가지 명령이지만 부두에는 이에 대해 침묵이 있습니다.
  2. 프로그램 외부의 변수 가용성.
1번 항목이 문서 품질에 대해 더 투덜거린다면 2번 항목은 이미 심각한 것입니다.

글쎄, 왜 읽어. 변수가 있는지 없는지는 GlobalVariableCheck 를 통해 간단히 확인할 수 있다. 당신은 개체와 같은 작업을 수행합니다.
즉, 변수를 생성/확인/삭제만 하면 됩니다.

 

Vladimir Simakov :

2. 프로그램 외부의 변수 가용성.

이것에는 문제가 없습니다. 터미널의 전역 변수로 작업하는 모든 기능에는 반환 값이 있습니다. 작업의 결과

동기화 도구도 있습니다 https://www.mql5.com/ru/docs/globals/globalvariablesetoncondition , 분수가 아니라 제안된 내용과 사용

그러나 가장 큰 불편함은 데이터 유형입니다. double만, 저는 double을 좋아하지 않습니다. 적어도 ulong은 될 것입니다. 여전히 용도를 찾을 수 있으며 조직 이름/값 ---> string/double은 다음을 원하게 만듭니다. 스왑 위치 - 문자열에 데이터 쓰기 및 이중 키 입력 - 둘 이상의 작업 쓰기/읽기 가능

이 모든 "경제"를 평가한 후 이진 파일을 가져와서 작성합니다. 완전한 자유와 불확실성이 없습니다.

아마도 당신은 그들과 함께 일할 수 있어야합니다.

여기 @fxsaber 는 모든 유형으로 작업하는 예를 보여주었습니다. https://www.mql5.com/ru/forum/320395/page6#comment_12910394

 
Konstantin Nikitin :

글쎄, 왜 읽어. 변수가 있는지 없는지는 GlobalVariableCheck 를 통해 간단히 확인할 수 있다. 당신은 개체와 같은 작업을 수행합니다.
즉, 변수를 생성/확인/삭제만 하면 됩니다.

예, 다른 로봇의 이름과 가장 평범한 충돌은 라인입니다.

 GlobalVariableDel (yourValueName);

당신에게 보증금을 보냅니다

당신은 그 이름이 독특할 것이고, 그곳에 다른 로봇이 없을 것이며, 아이/아내/친구/자신이 술에 취해 절대 전투 터미널에 접근하지 않을 것이라고 말할 것입니다))) 동의하지만 확률은 0이 아닙니다 , 이는 코드를 신뢰할 수 없게 됨을 의미합니다.

 
Vladimir Simakov :

예, 다른 로봇의 이름과 가장 평범한 충돌은 라인입니다.

당신에게 보증금을 보냅니다

당신은 그 이름이 독특할 것이고, 그곳에 다른 로봇이 없을 것이며, 아이/아내/친구/자신이 술에 취해 절대 전투 터미널에 접근하지 않을 것이라고 말할 것입니다))) 동의하지만 확률은 0이 아닙니다 , 이는 코드를 신뢰할 수 없게 됨을 의미합니다.

망상과 환상

money Advisor는 항상 자체 VDS(또는 서버)에서 별도의 터미널에서 작동하며 아무도 혼동하지 않습니다.

 
Maxim Kuznetsov :

망상과 환상

money Advisor는 항상 자체 VDS(또는 서버)에서 별도의 터미널에서 작동하며 아무도 혼동하지 않습니다.

항상을 의미합니까? 오늘-항상, 내일 당신은 다르게 계산할 수 있습니다. 그리고 내가 보기에 모든 사람이 당신에게 동의하는 것은 아닙니다.

나는 전역 터미널 변수 를 사용하는 실제 위험을 지적했다. 이것은 좋지도 나쁘지도 않습니다. 이것은 개발자가 우리에게 준 것이므로 알고 고려해야합니다.

같은 줄

 GlobalVariablesDeleteAll ();

모든 스크립트에서 실행되고 죄송합니다 ...

 

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

mql5 언어의 특징, 미묘함 및 작업 방법

블라디미르 시마코프 , 2020.05.24 17:02

같은 줄

 GlobalVariablesDeleteAll ();

모든 스크립트에서 실행되고 죄송합니다 ...

그래픽 개체의 경우에도 마찬가지입니다.

 ObjectsDeleteAll (...


고문의 자원만 다른 프로그램에서 변경할 수 없습니다.

 

동료 여러분, 가능하면 매크로 작성을 도와주시기 바랍니다.

2차원 배열을 동적으로 선언해야 합니다. 또한 두 번째 차원도 변경해야 합니다. 이 주기처럼:

 for ( int would_be_size2= 0 ;would_be_size2< 5 ;would_be_size2++)
    {
     double d_array[][ would_be_size2 ];
     int size2= ArrayRange (d_array, 1 );
    }

그러나 이 경우 컴파일러는 다음과 같이 맹세합니다.

 '[' - invalid index value        t7.mq5   20        22

다음과 유사한 매크로를 보고 싶습니다.

 #define CREATE_MARRAY(type,arr_name,size2) (type arr_name[][ ##size2])

줄 대신:

 double d_array[][would_be_size2];

고맙습니다.

 
Denis Kirichenko :

동료 여러분, 가능하면 매크로 작성을 도와주시기 바랍니다.

2차원 배열을 동적으로 선언해야 합니다. 또한 두 번째 차원도 변경해야 합니다. 이 주기처럼:

그러나 이 경우 컴파일러는 다음과 같이 맹세합니다.

다음과 유사한 매크로를 보고 싶습니다.

줄 대신:

고맙습니다.

그리고 충분한(최대) 크기의 배열을 만드는 것은 정치적 견해가 간섭하는 주기의 외부에 있습니까? :-)

주어진 접근 방식(루프에서 배열을 다시 생성할 때마다)은 속도나 메모리 소비 측면에서 아무 것도 얻지 못합니다.

 
Denis Kirichenko :

다음과 유사한 매크로를 보고 싶습니다.

작동 안 할 것이다.