포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 26

 
atztek :

표시기 버퍼, 앞으로 이 솔루션은 직선뿐만 아니라 이동 평균선 등에도 사용될 것입니다.


당신이 끝내고 싶은 것을 명확히 할 수 있습니까?
 
안녕하세요! 곱하면 추세의 각도를 측정하는 방법과 각도의 값을 표시하는 방법을 보여줍니다.
 
평균의 기울기를 측정하여 -35도처럼 표시하고 싶습니다.
 
igor2013 :
평균의 기울기를 측정하여 -35도처럼 표시하고 싶습니다.

그래프에서 -35°는 무엇입니까? 스케일이 바뀌면?
 
Vinin :

당신이 끝내고 싶은 것을 명확히 할 수 있습니까?

위의 예에서, 히스토리의 전체 길이에 걸쳐 표시기 버퍼 를 사용하여 선이 그려집니다.
마지막 20개 막대로만 제한해야 합니다. 저것들. 새 막대가 나타날 때 오른쪽에 선이 그려지고 왼쪽에 짧아져서 길이가 항상 20개 막대와 같도록 합니다.
 

내가 코드에 무엇을 쓰고 있는지 완전히 이해하지 못하지만 화면에는 항상 같은 숫자가 표시됩니다. 커서를 선으로 가져갔지만 각도가 어떻게 변하는지 알 수 있습니다.

ObjectDelete("TremdLineAverage");
ObjectCreate("TremdLineAverage", OBJ_TRENDBYANGLE ,0,0,0,0,0,0,0); // ------------------------- 추세선 2 좌표
ObjectSet("TremdLineAverage", OBJPROP_WIDTH, HirinaUgolAverage); // ---------------------------------------- 너비
ObjectSet("TremdLineAverage", OBJPROP_COLOR, colUgolAverage); // --------------------------------------------- 색깔
ObjectSet("TremdLineAverage", OBJPROP_TIME1, 시간[1]); // ------------------------------------------- 1 시간 좌표
ObjectSet("TremdLineAverage", OBJPROP_TIME2, 시간[0]); // ------------------------------------------- 1 시간 좌표
ObjectSet("TremdLineAverage", OBJPROP_PRICE1,UgolAverage1_1); // ----------------------- 1 가격 좌표
ObjectSet("TremdLineAverage", OBJPROP_PRICE2,UgolAverage1_0); // ----------------------- 두 번째 가격 좌표
ObjectSet("TremdLineAverage", OBJPROP_RAY, 15); 각도=15;

 
kodda는 15 위로 올라가고 -15로 내려갑니다.
 
ObjectDelete("TremdLineAverage");
ObjectCreate("TremdLineAverage", OBJ_TRENDBYANGLE ,0,0,0,0,0,0,0); // ------------------------- 추세선 2 좌표
ObjectSet("TremdLineAverage", OBJPROP_WIDTH, HirinaUgolAverage); // ---------------------------------------- 너비
ObjectSet("TremdLineAverage", OBJPROP_COLOR, colUgolAverage); // --------------------------------------------- 색깔
ObjectSet("TremdLineAverage", OBJPROP_TIME1, 시간[1]); // ------------------------------------------- 1 시간 좌표
ObjectSet("TremdLineAverage", OBJPROP_TIME2, 시간[0]); // ------------------------------------------- 1 시간 좌표
ObjectSet("TremdLineAverage", OBJPROP_PRICE1,UgolAverage1_1); // ----------------------- 1 가격 좌표
ObjectSet("TremdLineAverage", OBJPROP_PRICE2,UgolAverage1_0); // ----------------------- 두 번째 가격 좌표
ObjectSet("TremdLineAverage", OBJPROP_ANGLE, 15); 각도=15;
 
감사합니다 통찰력.
 
igor2013 :
감사합니다 통찰력.

준비 기능, 사용해 보세요.

SetTLineByAngle() 함수.

이 함수는 현재 차트의 기울기에 따라 추세선의 OBJ_TRENDBYANGLE 객체를 설정합니다.
cl - TREND LINE 개체의 색상입니다. 필수 매개변수입니다.
nm - 개체의 이름입니다. 기본값을 전달할 때 - "" 현재 막대의 여는 시간이 이름으로 사용됩니다.
t1 - 개체 설치 시간의 첫 번째 좌표입니다. 기본값은 0 - 열 번째 막대가 열리는 시간입니다.
p1 - 객체 설치 가격의 첫 번째 좌표. 기본값은 0 - 낮은 10번째 막대입니다.
t2 - 개체 설치 시간의 두 번째 좌표입니다. 기본값은 0 - 현재 막대의 여는 시간입니다.
p2 - 물체의 설치 가격의 두 번째 좌표. 이 매개변수는 일종의 스위치입니다. 0이 아닌 값은 이 함수를 SetTLine() 함수와 동일시합니다. 즉, 추세선은 시간/가격 좌표 쌍을 사용하여 그려지고 추세선의 기울기 각도 값은 무시됩니다. 기본값은 0입니다. 기울기를 기반으로 추세선을 만듭니다.
- 경사각(도). 기본값 - 0 - 수평선.
ry - 플래그 속성 RAY. 기본값은 False입니다.
st - 선 스타일. 유효한 값은 STYLE_SOLID(기본값), STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT입니다.
wd - 선 두께. 기본값은 1입니다.

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.10.2007                                                     |
//|  Описание : Установка объекта OBJ_TRENDBYANGLE трендовая линия по углу     |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cl - цвет линии                                                         |
//|    nm - наименование               (  ""  - время открытия текущего бара)  |
//|    t1 - время открытия бара        (  0   - Time[10]                       |
//|    p1 - ценовой уровень            (  0   - Low[10])                       |
//|    t2 - время открытия бара        (  0   - время открытия текущего бара)  |
//|    p2 - ценовой уровень            (  0   - по углу)                       |
//|    an - угол                       (  0   - по умолчанию)                  |
//|    ry - луч                        (False - не луч)                        |
//|    st - стиль линии                (  0   - простая линия)                 |
//|    wd - ширина линии               (  1   - по умолчанию)                  |
//+----------------------------------------------------------------------------+
void SetTLineByAngle( color cl, string nm= "" ,
               datetime t1= 0 , double p1= 0 , datetime t2= 0 , double p2= 0 ,
               double an= 0 , bool ry=False, int st= 0 , int wd= 1 ) {
   if (nm== "" ) nm=DoubleToStr(Time[ 0 ], 0 );
   if (t1<= 0 ) t1=Time[ 10 ];
   if (p1<= 0 ) p1=Low[ 10 ];
   if (t2<= 0 ) t2=Time[ 0 ];
   if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_TRENDBYANGLE , 0 , 0 , 0 );
  ObjectSet(nm, OBJPROP_TIME1 , t1);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_TIME2 , t2);
   if (p2> 0 ) ObjectSet(nm, OBJPROP_PRICE2, p2);
   else ObjectSet(nm, OBJPROP_ANGLE , an);
  ObjectSet(nm, OBJPROP_COLOR , cl);
  ObjectSet(nm, OBJPROP_RAY   , ry);
  ObjectSet(nm, OBJPROP_STYLE , st);
  ObjectSet(nm, OBJPROP_WIDTH , wd);
}