초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 975

 
Tango_X :

Здравствуйте! разложите конструкцию на операторы if... C= (i>0) ? (A>B) ? 1 : (A<B) ? 2 : C: 0;

читал по справке - но не справился)

if(i> 0 )   {    if (A>B)      {       C= 1 ;      }    else      {        if (A<B)         {          C= 2 ;         }        else         {          C=C;         }      }   } else   {    C= 0 ;   }

Artyom Trishkin :

이렇게:

추신. 도움말은 여기에서 중요하지 않습니다. 여기 논리가 있습니다.

C=C 가 어디에 있는지 설명하십시오.

추신. 어떤 이유로 논리가 작동하지 않습니다

 
Tango_X :

C=C 가 존재하는 위치를 설명하십시오.

추신. 어떤 이유로 논리가 작동하지 않습니다

Artyom을 알고 있기 때문에 그가 올바르게 그렸다는 데는 의심의 여지가 없습니다. 저는 단지 그것을 조금 다르게 설명하려고 합니다.

C =   // присвоить переменной С значение
(i> 0 ) // если первое условие выполнено
?     // то
(A>B) // если и второе условие выполнено
?     // то С
1     // будет равно 1
:     // иначе, (относится ко второму условию) если второе условие НЕ выполнено
(A<B) // если третье условие выполнено
?     // то С
2      // будет равно 2
:     // иначе (относится к третьему условию) если третье условие НЕ выполнено
C     // то С будет равно предыдущему значению. То-есть изменено не будет
:     // иначе (относится первому условию) если первое условие НЕ выполнено
0     // С будет равно 0
;
 
Alexey Viktorov :

Artyom을 알고 있기 때문에 그가 올바르게 그렸다는 데는 의심의 여지가 없습니다. 저는 단지 그것을 조금 다르게 설명하려고 합니다.

감사하다!

 
Tango_X :

C=C 가 존재하는 위치 를 설명하십시오.

추신. 어떤 이유로 논리가 작동하지 않습니다

이것에서 :

 C = (i> 0 ) ? (A>B) ? 1 : (A<B) ? 2 : C : 0 ;
추신. 공장.
 
Artyom Trishkin :

이것에서 :

추신. 공장.

고맙습니다!

 

객체 배열에서 검색하는 방법은 무엇입니까?

다음 은 CArrayObj 객체 배열을 검색하는 방법의 예입니다. 작업은 지정된 메서드(오프셋)와 동일한 메서드 중 하나에서 반환된 값을 가진 인스턴스를 찾는 것입니다. 배열에 있는 요소의 수 때문에 매우 긴 것으로 판명된 철저한 검색으로 수행합니다. 제대로 하는 방법?

CArrayObj m_bind_shifts;

CBindParams *CCheckRules::GetBindObjectByOffset( int offset)
  {
   for ( int i= 0 ;i<m_bind_shifts.Total();i++)
     {
       if (!CheckPointer(m_bind_shifts.At(i)))
         continue ;
      CBindParams * value =m_bind_shifts.At(i);
       if ( value ==NULL)
         continue ;
       //Print(__FUNCTION__+": offset from array: ",value.Shift());
       if ( value .Shift()==offset)
        {
         return GetPointer( value );
        }
     }
   CBindParams * value = new CBindParams();
   value .GroupID( 0 );
   return value ;
  }

C#에서는 다음과 같이 하기 쉽습니다.

찾기 (x=>x.method()==값)

목록이 정렬되었는지 여부는 중요하지 않습니다. 여기는 어때? CList에서도 기성품 메서드를 찾지 못했습니다.

 
Juer :

객체 배열에서 검색하는 방법은 무엇입니까?

다음은 CArrayObj 개체 배열을 검색하는 방법의 예입니다. 작업은 지정된 메서드(오프셋)와 동일한 메서드 중 하나에서 반환된 값을 가진 인스턴스를 찾는 것입니다. 배열에 있는 요소의 수가 많기 때문에 매우 긴 것으로 판명된 철저한 검색으로 이 작업을 수행합니다. 제대로 하는 방법?

C#에서는 다음과 같이 하기 쉽습니다.

찾기 (x=>x.method()==값)

목록이 정렬되었는지 여부는 중요하지 않습니다. 여기는 어때? CList에서도 기성품 메서드를 찾지 못했습니다.

오프셋은 여기에서 고유합니다. CHashMap이 분명히 도움이 될까요? 하지만 어렵다... :(

그러나 아직 명확하지 않습니다. 나에게 있는 개체에는 메서드가 많이 있습니다. 개체에 대한 포인터를 얻으려면 어떻게 해야 합니까?

 
Juer :

오프셋은 여기에서 고유합니다. CHashMap이 분명히 도움이 될까요? 하지만 어렵다... :(

그러나 아직 명확하지 않습니다. 나에게 있는 개체에는 메서드가 많이 있습니다. 개체에 대한 포인터를 얻으려면 어떻게 해야 합니까?

https://www.mql5.com/en/articles/1334#summary 필요한 것 같아요
Рецепты MQL5 - Реализуем ассоциативный массив или словарь для быстрого доступа к данным
Рецепты MQL5 - Реализуем ассоциативный массив или словарь для быстрого доступа к данным
  • www.mql5.com
Эта статья описывает удобный класс для хранения информации - ассоциативный массив или словарь. Благодаря этому классу можно получать доступ к информации по ее ключу. Ассоциативный массив напоминает обычный массив, однако вместо индекса он использует некий уникальный ключ, например, перечисление ENUM_TIMEFRAMES или какой-либо текст. Что...
 
Juer :

... 작업은 지정된 메서드(오프셋)와 동일한 메서드 중 하나에서 반환된 값을 가진 인스턴스를 찾는 것입니다. 배열에 있는 요소의 수가 많기 때문에 매우 긴 것으로 판명된 철저한 검색으로 이 작업을 수행합니다. ...

C#에서는 다음과 같이 하기 쉽습니다.

찾기 (x=>x.method()==값)

목록이 정렬되었는지 여부는 중요하지 않습니다. ...

그리고 C#에서 이 양고기 표현식이 마법의 도움으로 정말 빨리 작동합니까?

method()가 동일한 값을 반환하면 사전을 살펴보십시오. 값이 매번 다른 경우 - 매번 전체 검색만 합니다.

 
Vasiliy Sokolov :

그리고 C#에서 이 양고기 표현식이 마법의 도움으로 정말 빨리 작동합니까?

method()가 동일한 값을 반환하면 사전을 살펴보십시오. 값이 매번 다른 경우 - 매번 전체 검색만 합니다.

글쎄, 네, 같은 장소에 Linq. 동일한 값. 예, 기계 중 하나에서 충돌이 발생했습니다. 코드는 어디에서나 동일합니다.

추가 시 m_dict.AddObject(str_array[0],field);

GN       2        18 : 25 : 19.855     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00    Access violation at 0x00007FF7EA6B79CF read to 0x000001EA0000006E
IO       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7940 48895 C2408        mov        [rsp+ 0x8 ], rbx
JN       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7945 57                 push       rdi
FQ       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7946 4883 EC20          sub        rsp, 0x20
MK       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B794A 488 B4108          mov        rax, [rcx+ 0x8 ]
NG       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B794E 33 DB              xor        ebx, ebx
NF       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7950 488 BF9            mov        rdi, rcx
FF       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7953 4885 C0            test       rax, rax
OM       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7956 740 E              jz         0x7ff7ea6b7966
LS       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00    
LF       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7958 48395808           cmp        [rax+ 0x8 ], rbx
GK       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B795C 7568               jnz         0x7ff7ea6b79c6
MQ       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00    
FK       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B795E 488 B00            mov        rax, [rax]
LF       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7961 4885 C0            test       rax, rax
MG       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7964 75 F2              jnz         0x7ff7ea6b7958
OQ       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00    
EH       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7966 488 D15932A1800    lea        rdx, [rip+ 0x182a93 ]
HE       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B796D B918000400        mov        ecx, 0x40018
HK       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7972 E8919CE8FF        call       0x7ff7ea541608   ; # 12238 (metatester64.exe)
DQ       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7977 4885 C0            test       rax, rax
RM       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B797A 750 B              jnz         0x7ff7ea6b7987
QE       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00    
ML       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B797C 488 B5C2430        mov        rbx, [rsp+ 0x30 ]
NO       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7981 4883 C420          add        rsp, 0x20
OR       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7985 5 F                pop        rdi
OD       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7986 C3                ret        
GH       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00    
OR       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7987 895810             mov        [rax+ 0x10 ], ebx
KN       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B798A 4 C8D4014          lea        r8, [rax+ 0x14 ]
GJ       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B798E 488 B4F08          mov        rcx, [rdi+ 0x8 ]
KF       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7992 8 BD3              mov        edx, ebx
FD       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7994 488908             mov        [rax], rcx
NK       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B7997 48894708           mov        [rdi+ 0x8 ], rax
IO       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B799B 0 F1F440000        nop        [rax+rax+ 0x0 ]
DQ       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79A0 498918             mov        [r8], rbx
DO       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79A3 4 D8D8000010000    lea        r8, [r8+ 0x100 ]
QO       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79AA 4863 CA            movsxd     rcx, edx
IF       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79AD 488 D5814          lea        rbx, [rax+ 0x14 ]
KJ       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79B1 48 C1E108          shl        rcx, 0x8
KF       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79B5 FFC2              inc        edx
EH       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79B7 4803 D9            add        rbx, rcx
KS       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79BA 81 FA00040000      cmp        edx, 0x400
IM       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79C0 72 DE              jb         0x7ff7ea6b79a0
RM       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00    
PE       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79C2 48895808           mov        [rax+ 0x8 ], rbx
GL       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79C6 488 B5008          mov        rdx, [rax+ 0x8 ]
OS       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79CA 488 B5C2430        mov        rbx, [rsp+ 0x30 ]
KS       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00       crash -->   00007 FF7EA6B79CF 488 B0A            mov        rcx, [rdx]
CL       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79D2 48894808           mov        [rax+ 0x8 ], rcx
JJ       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79D6 488902             mov        [rdx], rax
ND       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79D9 FF4010            inc        dword [rax+ 0x10 ]
JK       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79DC 488 D4208          lea        rax, [rdx+ 0x8 ]
QQ       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79E0 4883 C420          add        rsp, 0x20
LL       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00                  00007 FF7EA6B79E4 5 F                pop        rdi
MR       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00    
CK       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00    00 : 0x00007FF7EA6B79CF
FH       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00    01 : 0x000001EA99EB0478
KL       2        18 : 25 : 19.862     CandleTypeStrategy (GBPUSD,M30) 2016.01 . 01 00 : 00 : 00    02 : 0x0000000000000001
사유: