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

 

그리고 여기에는 일종의 혼란이 있습니다... 일부 레벨을 숨기고 다른 레벨을 특정 스타일로 만들고 싶습니다 (그렇지 않으면).

따라서 디버그 스타일의 0 레벨은 변경되지만 첫 번째 레벨을 숨기 자마자 노란색으로 돌아갑니다. 디버그에서도 마찬가지입니다. 값이있는 비문은 올바른 색상 일뿐입니다. 이 피보나치 때문에 얼마나 고통스러운지....

   int total_levels=(int)ObjectGetInteger(ChartID(),name,OBJPROP_LEVELS);
   for(int i=0;i<total_levels;i++)
     {
      if(i==0 || i==4 || i==5)
        {
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELCOLOR,i,FiboClr);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELWIDTH,i,FiboWidth);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELSTYLE,i,FiboStyle);
        }
      else
        {
         ObjectSetDouble(ChartID(),name,OBJPROP_LEVELVALUE,i,0);
         ObjectSetString(ChartID(),name,OBJPROP_LEVELTEXT,i,"");
        }
     }
 

안녕하세요 여러분.

문제를 해결하는 방법을 알려주세요.

포지션과 주문을 처리하고 데이터베이스로 확인하는 클래스가 있습니다.

이 클래스에서 구조체(문자열, 이중, 정수, 문자열 .....)를 전달해야 합니다.

어떻게 할 수 있을까요?

그리고 가능하다면 예제에 대한 링크

 
Sergey Li #:

안녕하세요, 여러분.

문제 해결 방법을 알려주세요.

포지션과 주문을 처리하고 데이터베이스로 확인하는 클래스가 있습니다.

이 클래스에서 구조체(문자열, 이중, 정수, 문자열 .....)를 전달해야 합니다.

어떻게 할 수 있을까요?

그리고 가능하면 예제에 대한 링크

표준 라이브러리에 예제가 있습니다.

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
  • www.mql5.com
Result(MqlTradeResult&) - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
주문을 보내기 전에 심볼의 마지막 포지션이 언제 열렸는지 확인해야 하는데, 기록이나 터미널의 글로벌 변수를 살펴보는 것이 더 빠를까요?
 
lynxntech 글로벌 터미널 변수 중 어느 것이 더 빠릅니까?

변수보다 빠를 수는 없습니다. 한 가지 수정 사항은 터미널을 다시 시작할 때 터미널의 전역 변수를 사용하여 저장하고 OnInit()에서 기록을 살펴볼 수 있습니다. 하지만 OnTick()으로 이동할 때 이 값은 터미널의 전역 변수가 아닌 전역 수준 변수에 있어야 합니다.

 
Alexey Viktorov #:

변수보다 빠를 수는 없습니다. 한 가지 수정 사항: 터미널을 다시 시작할 때 터미널의 전역 변수를 사용하여 저장하고 OnInit()에서 기록을 살펴볼 수 있습니다. 그러나 OnTick()으로 이동할 때 이 값은 터미널의 전역 변수가 아닌 전역 수준 변수에 있어야 합니다.

터미널의 전역 변수는 일반 메모리와 동일한 메모리에 저장되어야 하기 때문에 필요할 때 디스크에서 요청하는 엄청난 양의 정보가 아니기 때문에 속도가 느립니다.

 
lynxntech #:

전역 변수는 일반 변수와 동일한 메모리에 저장되어야 하므로 필요할 때 디스크에서 요청하는 정보의 양이 많지 않기 때문에 속도가 느립니다.

대략적으로 말하면 전역 터미널 변수는 파일과 거의 비슷합니다. 그렇지 않다면 컴퓨터가 꺼져 있을 때 어디에 저장될까요? 그리고 프로그램의 어느 위치에서나 액세스할 수 있는 전역 수준 변수는 메모리에 있는 변수입니다. 당연히 더 빠릅니다.

새로 열 때 터미널을 다시 시작한 후 복원하려면 전역 수준 변수와 터미널의 전역 변수에 모두 쓰는 것이 더 낫다는 것이 밝혀졌습니다. 그러나 터미널이 실행되는 동안에는 전역 레벨 변수를 확인해야 합니다.

 
Alexey Viktorov #:

대략적으로 말하면 전역 터미널 변수는 파일과 거의 비슷합니다. 그렇지 않다면 컴퓨터가 꺼졌을 때 어디에 저장될까요? 그리고 프로그램의 어느 위치에서나 액세스할 수 있는 전역 수준 변수는 메모리에 있는 변수입니다. 당연히 더 빠릅니다.

새로 열 때 터미널을 다시 시작한 후 복원하려면 전역 수준 변수와 터미널의 전역 변수에 모두 쓰는 것이 더 낫다는 것이 밝혀졌습니다. 그러나 터미널이 실행되는 동안에는 전역 레벨 변수를 확인해야 합니다.

즉, OnDeinit에서 기록을 확인하고 전역 터미널 변수에 기록해야 하나요?

이상적으로는 텍스트 형식에 몇 바이트의 정보만 있고, 일반적인 변수와 같이 가용성, 즉 RAM에 포함되어 있지 않나요?

OnInit에서 우리는 그것을 읽고 RAM에 쓴 다음 변수가 업데이트되면 덮어 씁니다.

이를 실제로 측정한 사람이 있나요? 아니면 개발자가 알아낼 수 있을까요?

 
lynxntech #:

즉, 온디네잇에서 기록을 확인하고 글로벌 터미널에 쓰나요?

이상적으로는 텍스트 형식으로 몇 바이트의 정보만 있으며, 가용성에는 일반 변수, 즉 RAM에 포함되지 않나요?

OnInit에서 이를 읽고 RAM에 쓴 다음 변수가 업데이트되면 덮어씁니다.

실제로 이것을 측정 한 사람이 있습니까? 아니면 개발자가 알아낼 수 있도록 도와 줄 수 있습니다.

OnDeinit()에서 히스토리 선택에 대해 누가 말했나요?

다음 위치가 열릴 때 변수를 터미널 변수에 복제해야 할 필요성에 대해 이야기하고 있었습니다...

 
Alexey Viktorov #:

OnDeinit()에서 히스토리를 선택하는 것에 대해 누가 말했나요?

저는 다음 포지션 오픈 시 터미널 변수에 변수를 복제해야 할 필요성에 대해 이야기하고 있었습니다...

실제 작업을 측정 한 사람들에게 질문이었고, 계획에 무엇이 있는지 알고있는 개발자에게 더 나은 질문이었습니다.

실험하고 싶지 않고 다른 많은 작업이 있습니다.

사유: