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

 
Nikolai Semko # :

따라서 전투 모드에서는 최소화하지 않고 모든 그래픽 항목을 꺼야 합니다. 창이 계속 표시되지만 활성 상태가 아닌 경우 그래픽을 정지시키십시오.
그리고 마우스가 비활성 상태일 때(예 : 1분) 모든 그래픽을 자동으로 끄고 제거하는 것이 더 쉽고 더 나은 것 같습니다. 마우스가 활성화되는 즉시 그래픽이 다시 시작됩니다.

전혀 좋지 않습니다. 여기에서 2분 동안 차트를 보고 차트는 1분 전에 사망했습니다. 그렇다면 왜 필요합니까?

 
Vitaly Muzichenko # :

전혀 좋지 않습니다. 여기에서 2분 동안 차트를 보고 차트는 1분 전에 사망했습니다. 그렇다면 왜 필요합니까?

물론이 모드의 경우 "자동 숨기기"스위치가 필요합니다.

 
Nikolai Semko # :

따라서 전투 모드에서는 최소화하지 않고 모든 그래픽 항목을 꺼야 합니다.

차트 자체의 캔버스는 최소화 없이 그려집니다. 경험적으로 터미널 동작 모드는 VPS가 최소한으로 로드될 때 발견되었습니다.

 

올바른 스레드에 게시하고 있기를 바랍니다.

1. 우리는 동시에 여러 쌍에 대한 테스트를 수행합니다. 다중 통화

질문: 각 쌍에 대한 결과를 얻는 방법은 무엇입니까?

2. 동시에 여러 쌍을 최적화합니다 .

질문: 각 쌍에 대한 결과를 얻는 방법은 무엇입니까?

---

옛날 옛적에 약 3년 전에 이것을 테스터에 포함시키겠다고 약속했지만 지금까지 아무 일도 일어나지 않았습니다. 아니면 못찾나요?

 

예를 들어 시장 고문 또는 신호 서비스의 작업을 중지하는 법적 방법이 있습니다. 한 가지 또는 다른 이유로 VPS에 액세스 할 수 없다고 가정 해 봅시다.

거래 서버에 제한 이 있는 경우 이 방법이 작동합니다. 모든 것을 예금으로 채워야하지만 조심스럽게 그렇지 않으면 열린 위치를 닫는 것이 불가능합니다.


아마도 누군가는 그러한 비상 시장 제품을 작성할 것입니다 ...

 

MQL5. MESSAGE BOX는 "전문가" 잡지의 메시지를 복제합니다. 비활성화하는 방법을 알려주세요. ***

고맙습니다!

 

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

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

fxsaber , 2017.09.22 20:43

POSITION_TIME_UPDATE 는 포지션 로트 변경에만 관련이 있습니다. 예를 들어, 모든 유형의 계정에서 포지션을 부분적으로 청산하거나 상계에 추가합니다.

SL/TP 수준의 변경은 POSITION_TIME_UPDATE에 영향을 미치지 않습니다.

바꾸어 말하면, POSITION_TIME_UPDATE는 거래 내역 - 거래에 반영된 수정 사항에 의해서만 영향을 받습니다. SL/TP 레벨은 이러한 수정과 관련이 없으므로 영향을 미치지 않습니다.

로트 크기 변경에도 불구하고 POSITION_TIME_UPDATE_MSC == POSITION_TIME_UPDATE인 상황이 있을 수 있습니다.

 
이 주제와 관련이 없는 댓글은 " MQL4 및 MQL5에 대한 모든 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 "으로 이동되었습니다.
 
fxsaber # :
구조 배열의 편리한 정렬


애플리케이션


결과

안녕하세요 공유해주셔서 감사합니다!

이것이 작동한다면 완벽할 것입니다. 그러나 .mq5 스크립트에 붙여넣고 불행히도 실행하면 코드에서 다음 오류가 발생합니다.

  • 템플릿 선언은 로컬 클래스 ArraySortStruct.mq5에서 허용되지 않습니다. 87 4
  • (코드를 약간 변경한 후): 템플릿 선언은 전역, 네임스페이스 또는 클래스 범위에서만 허용됩니다. ArraySortStruct.mq5 90 4 )

이 문제를 해결해 주시겠습니까? 당신에게는 아마도 쉬울 것 같지만 어디서부터 시작해야할지 모르겠습니다 :-)

 
Bodolino # :

안녕하세요 공유해주셔서 감사합니다!

이것이 작동한다면 완벽할 것입니다. 그러나 .mq5 스크립트에 붙여넣고 불행히도 실행하면 코드에서 다음 오류가 발생합니다.

  • 템플릿 선언은 로컬 클래스 ArraySortStruct.mq5에서 허용되지 않습니다. 87 4
  • (코드를 약간 변경한 후): 템플릿 선언은 전역, 네임스페이스 또는 클래스 범위에서만 허용됩니다. ArraySortStruct.mq5 90 4 )

이 문제를 해결해 주시겠습니까? 당신에게는 아마도 쉬울 것 같지만 어디서부터 시작해야할지 모르겠습니다 :-)

기능(서브필드 및 메소드)과 편리한 사용법을 유지하는 방법을 모르겠습니다. 아마도 이 옵션이 귀하의 필요에 맞을 것입니다.

 // Сортировка массива структур и указателей на объекты 
по полю .
#define ArraySortStruct_Define(TYPE, FIELD)                                      \
namespace TYPE ##FIELD                                                             \
{                                                                                \
   class SORT                                                                     \
  {                                                                              \
   private :                                                                       \
     template < typename T>                                                        \
     static void Swap( T &Array[], const int i, const int j )                     \
    {                                                                            \
       const T Temp = Array[i];                                                   \
                                                                                 \
      Array[i] = Array[j];                                                       \
      Array[j] = Temp;                                                           \
                                                                                 \
       return ;                                                                    \
    }                                                                            \
                                                                                 \
     template < typename T>                                                        \
     static int Partition( T &Array[], const int Start, const int End )           \
    {                                                                            \
       int Marker = Start;                                                        \
                                                                                 \
       for ( int i = Start; i <= End; i++)                                         \
         if (Array[i]. ##FIELD <= Array[End]. ##FIELD)                               \
        {                                                                        \
          SORT::Swap(Array, i, Marker);                                          \
                                                                                 \
          Marker++;                                                              \
        }                                                                        \
                                                                                 \
       return (Marker - 1 );                                                       \
    }                                                                            \
                                                                                 \
     template < typename T>                                                        \
     static void QuickSort( T &Array[], const int Start, const int End )          \
    {                                                                            \
       if (Start < End)                                                           \
      {                                                                          \
         const int Pivot = Partition(Array, Start, End);                          \
                                                                                 \
        SORT::QuickSort(Array, Start, Pivot - 1 );                                \
        SORT::QuickSort(Array, Pivot + 1 , End);                                  \
      }                                                                          \
                                                                                 \
       return ;                                                                    \
    }                                                                            \
                                                                                 \
   public :                                                                        \
     template < typename T>                                                        \
     static void Sort( T &Array[], int Count = WHOLE_ARRAY , const int Start = 0 ) \
    {                                                                            \
       if (Count == WHOLE_ARRAY )                                                  \
        Count = :: ArraySize (Array);                                              \
                                                                                 \
      SORT::QuickSort(Array, Start, Start + Count - 1 );                          \
                                                                                 \
       return ;                                                                    \
    }                                                                            \
  };                                                                             \
}

#define ArraySortStruct(TYPE, ARRAY, FIELD) TYPE ##FIELD::SORT::Sort(ARRAY)


애플리케이션.

 ArraySortStruct_Define( MqlRates , open)
ArraySortStruct_Define( MqlRates , high)
ArraySortStruct_Define( MqlRates , time)

void OnStart ()
{
   MqlRates Rates[];
  
   CopyRates ( _Symbol , PERIOD_CURRENT , 0 , 5 , Rates); // Взяли бары
  
   Print ( "\nБары без сортировки - как получили." );
   ArrayPrint (Rates);
  
   Print ( "\nСортируем по open-цене." );
   ArraySortStruct( MqlRates , Rates, open);
   ArrayPrint (Rates);

   Print ( "\nСортируем по high-цене." );
   ArraySortStruct( MqlRates , Rates, high);
   ArrayPrint (Rates);

   Print ( "\nСортируем по времени." );
   ArraySortStruct( MqlRates , Rates, time);
   ArrayPrint (Rates);
}
사유: