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

 
Maxim Kuznetsov :

이에 대한 일반 API는 없지만 정말로 원한다면 할 수 있습니다 :-)

알고리즘은 다음과 같습니다.

- 차트의 모든 지표(하위 창 포함)를 스크롤하여 변경된 지표(이름/번호)에 대한 최대 정보 수집

- 차트 템플릿 저장

- 필요한 칠면조를 찾아 템플릿을 구문 분석합니다.

- 필요한 값을 변경

-ChartApplyTemplate

- (차트의 모든 지표와 어드바이저가 다시 로드되고 아마도 귀하의 것도 다시 로드될 것이며 아마도 WinAPI를 통해 파일을 복사해야 할 것이라는 점을 잊지 마십시오)

일반적으로 야생 기모르 :-)

감사합니다. 이제 WinAPI를 통하는 방법은 하나뿐임을 이해합니다! 매우 감사합니다 !

 
STARIJ :

아주 간단해서 자주 하게 됩니다. 스크립트에 키를 할당할 수 있다는 것이 편리합니다. 예를 들어 Ctrl-z는 줄을 제거하고 Alt-z는 줄을 표시합니다. 첨부된 함수 GlobalVariableSet() 및 GlobalVariableGet() 예제를 참조하십시오. 다른 리소스에서 아이디어를 가져 왔습니다(진행자 Artyom Trishkin 수정).

감사합니다 딱 필요한 내용이네요!!!

 
Alexey Viktorov :

하나.

OBJPROP_CREATETIME

객체 생성 시간

날짜/시간 r/o

2.

OBJPROP_PRICE

가격 좌표

이중 수정자=앵커 포인트 번호

감사합니다. 하지만 작동하지 않습니다.

 int obj_total= ObjectsTotal ();
       for ( int iL= 0 ;iL<obj_total;iL++)
  {
   name= ObjectName (iL);
   if ( ObjectType (name)!= OBJ_TRIANGLE ) continue ;
   if ( StringFind (name, "321fa" , 0 )!=- 1 )
     {

    time= ObjectGetInteger ( 0 ,name , OBJPROP_CREATETIME ); //
      price= ObjectGetDouble ( 0 ,name , OBJPROP_PRICE , 2 );
     
     }
  }
   //===---===

매개변수의 중간에 있는 점의 가격이 필요합니다.

어디가 잘못된거야?

 
PolarSeaman :

감사합니다. 하지만 작동하지 않습니다.

매개변수의 중간에 있는 점의 가격이 필요합니다.

어디가 잘못된거야?

문서가 있습니다

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TRIANGLE
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TRIANGLE
  • www.mql5.com
//| Cоздает треугольник по заданным координатам                      |               time1=0,                            price1=0,                         time2=0,                            price2=0,                         time3=0,                            price3=0,                        width=1,           ...
 
Vitaly Muzichenko :

문서가 있습니다

이 예시가 눈앞에 있는데 두 번째 포인트의 가격을 어떻게 구해야 할지 막막합니다.

주석에 가격이 어디에서 왔는지 알 수 없으며 객체 생성의 현재 시간을 씁니다. 그러나 객체는 60 초 전에 생성되었습니다.

시간이 지나면서 알아냈습니다. OBJPROP_CREATETIME 대신 OBJPROP_TIME 을 넣어야 합니다.

가장 오래된 물건의 가격을 구했는데 가장 최근 물건의 가격은 어떻게 구하나요?

 
PolarSeaman :

감사합니다. 하지만 작동하지 않습니다.

매개변수의 중간에 있는 점의 가격이 필요합니다.

어디가 잘못된거야?

OBJPROP_TIME. 그리고 수정자로 - 원하는 점의 번호. 숫자는 0부터 시작합니다.
 
PolarSeaman :

이 예시가 눈앞에 있는데 두 번째 포인트의 가격을 어떻게 구해야 할지 막막합니다.

주석에 가격이 어디에서 왔는지 알 수 없으며 객체 생성의 현재 시간을 씁니다. 그러나 객체는 60 초 전에 생성되었습니다.

시간이 지나면서 알아냈습니다. OBJPROP_CREATETIME 대신 OBJPROP_TIME 을 넣어야 합니다.

가장 오래된 물건의 가격을 구했는데 가장 최근 물건의 가격은 어떻게 구하나요?

빌드 시간으로 선택 - 가장 최근.

 
PolarSeaman :

감사합니다. 하지만 작동하지 않습니다.

매개변수의 중간에 있는 점의 가격이 필요합니다.

어디가 잘못된거야?

이 질문으로

최소 가격 을 찾는 방법은 무엇입니까? 속성의 중간에 있는 가격입니다.

무언가를 명확하게 이해하는 것은 매우 어렵습니다. "질문은 무엇입니까, 그것이 답입니다."

내가 이해한 가장 최근의 것은 포인트 좌표의 시간이 아니라 가장 최근에 생성된 것입니다. 그러나 객체의 속성에서 좌표 중 어느 위치에 위치할 것인지는 삼각형을 구성하는 순서에 따라 다릅니다 .

 
Alexey Viktorov :

그러나 객체의 속성에서 좌표 중 어느 위치에 위치할 것인지는 삼각형을 구성하는 순서에 따라 다릅니다 .

표현을 위해, 죄송합니다.

알아냈어요. 항상 인덱스가 1인 점이 필요합니다.

Artyom Trishkin :

빌드 시간으로 선택 - 가장 최근.

시간은 있지만 후자를 선택하는 방법을 모르겠습니다.

나는 다른 쪽의주기에서 다르게 시도했지만 어떤 이유로 나는 첫 번째 (현재 날짜에 가장 가까운)가 아니라 두 번째 개체의 원하는 지점의 가격을 얻습니다.

 int obj_total= ObjectsTotal ();
       // for(int iL=0;iL<obj_total;iL++)
       for ( int iL = obj_total;iL>= 0 ;iL--)
  {
   name= ObjectName (iL);
   if ( ObjectType (name)!= OBJ_TRIANGLE ) continue ;
   if ( StringFind (name, "233123h" , 0 )!=- 1 )
     {

    time= ObjectGetInteger ( 0 ,name , OBJPROP_TIME , 1 ); //
      price= ObjectGetDouble ( 0 ,name , OBJPROP_PRICE , 1 );
     
     }
  }
   //===---===

왜요?

 
PolarSeaman :

표현을 위해, 죄송합니다.

그런 다음 동일한 공식을 계속 사용하십시오.