[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 105

 

안녕하세요 여러분,

칠면조를 만들었는데 45도 각도로 두 개의 선을 긋고 교차할 때 가로로 선을 긋고 싶습니다.

그렇다면 교차점은 어떻게 계산합니까?

전날 낮음/높음부터 1포인트까지 그립니다.

그러한 선을 얻으려면 하루가 시작되기 전의 지점에서 그리고 빔의 지점에서 다른 방향으로 그립니다.

가장 많은 목록에 대한 코드를 작성하는 방법은 무엇입니까? 지금까지 그렇게 하지 않았습니다. 그림:

Вот начну искат как цена двигается-толко надо увидет ее-первая ест,но вторая 0 :
price1 = NormalizeDouble (ObjectGet( "Dn" ,OBJPROP_PRICE1), Digits );
price2 = NormalizeDouble (ObjectGet( "Dn" ,OBJPROP_PRICE2), Digits );
Time_start - ето синяя вертикалная линия
double b3=iBarShift( Symbol (), 0 ,Time_start);      
double b4=iBarShift( Symbol (), 0 , TimeCurrent ());
ну и цикл поиска
for ( int j = b4;j <= b3;j++){
Ну що искат,если я не вижу то,что ищу?
Застрял.
 
bond007 :
....그리고 그들은 어떻게 알 수 있나요??)
그것은 분명하지 않습니다 .... 어떤 사람들은 거래가 고문의 도움으로 수행 될 수 있다고 말하고 다른 사람들은 불가능하다고 말합니다. 그러나 예를 들어 DC에서 고문을 사용할 수 있다면 어떻게합니까?

DC 고문의 코드는 어떤 식 으로든 볼 수 없습니다 .... 주문의 강도와 주문에 대한 의견 만 봅니다 ... 터미널에서 전문가의 작업이 금지 된 일부 DC가 있습니다 ... 그 즉, 어드바이저를 차트에 붙이면 거래가 되지 않습니다... ds 서버의 설정에 의해 금지되어 xxx 오류가 발생합니다. 또는 2013.01.18 22:45:03 '30xxxxx': 전문가 거래 금지



추신 왜 모든 사람들이 코드에 집착하는가?

 
hoz :

감사합니다. 이제 식욕이 생길 것 같아요 :)
나는 당신을 기쁘게 생각합니다. 그리고 점차적으로 간단한 것에서 복잡한 것으로 프로그램을 작성하는 데 필요한 이해를 프로그래밍하게 될 것입니다. 행운을 빕니다!
 
mario065 :

안녕하세요 여러분,

칠면조를 만들었는데 45도 각도로 두 개의 선을 긋고 교차할 때 가로로 선을 긋고 싶습니다.

그렇다면 교차점은 어떻게 계산합니까?

전날 낮음/높음부터 1포인트까지 그립니다.

그러한 선을 얻으려면 하루가 시작되기 전의 지점에서 그리고 빔의 지점에서 다른 방향으로 그립니다.

가장 많은 목록에 대한 코드를 작성하는 방법은 무엇입니까? 지금까지 그렇게 하지 않았습니다. 그림:

돕기 위해.
 
drknn :

"로그 플롯"이라는 용어는 무엇을 의미합니까? 예를 들어 주십시오. 예를 들어, 나는 이전에 그래프의 대수 스케일 개념만을 접했습니다. MT4 터미널에서는 이 스케일이 이미 구현되었습니다.
정확히 로그 스케일을 의미합니다. MT에서 어떻게 찾나요? 나는 그것을 몇 년 동안 사용해 왔으며 이미 무엇이 있는지 모릅니다.
 
mario065 :

안녕하세요 여러분,

칠면조를 만들었는데 45도 각도로 두 개의 선을 긋고 교차할 때 가로로 선을 긋고 싶습니다.

그렇다면 교차점은 어떻게 계산합니까?

전날 낮음/높음부터 1포인트까지 그립니다.

그러한 선을 얻으려면 하루가 시작되기 전의 지점에서 그리고 빔의 지점에서 다른 방향으로 그립니다.

가장 많은 목록에 대한 코드를 작성하는 방법은 무엇입니까? 지금까지 그렇게 하지 않았습니다. 그림:



이고르 김에게서:

CrossPointOfLines() 함수

 

Alexey, Artem 감사합니다.

잠깐, 이고르 김의 기능을 배우겠습니다.

 

그래서 포인트가 2개도 없고 1개만 먹습니다.

isam 소스는 다음과 같습니다.

 //+------------------------------------------------------------------+
//|                                                     TRIANGLE.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2013,mario"
#property link       ""

#property indicator_chart_window
extern string    TimeStart  = "Час за начало" ;
extern datetime Time_start = D'17.01.2013' ;
extern int       Days       = 1 ;
bool             New_Bar    = false ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){ return ( 0 );}
int deinit(){
   ObjectsDeleteAll ( 0 , OBJ_TRENDBYANGLE );
   ObjectsDeleteAll ( 0 , OBJ_VLINE );
   Comment ( "" ); return ( 0 );}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  { 
   datetime New_Time,time_next,time_barh,time_barl;
   time_next = Time_start + Days* 86400 ;
   datetime new_day = iTime( Symbol (), PERIOD_D1 , 0 );
//+------------------------------------------------------------------+
   if (New_Time != new_day)                        
           {
           New_Time = new_day;                         
           New_Bar  = true ;
           }
//+------------------------------------------------------------------+ 
//Шифтвам 
   double b1=iBarShift( Symbol (), 0 ,Time_start);      
   double b2=iBarShift( Symbol (), 0 ,time_next);
   double min = 3 ,max = 0 ;
   for ( int i = b2;i <= b1;i++){
       if (iHigh( Symbol (), 0 ,i)>max){ max=iHigh( Symbol (), 0 ,i);time_barh = Time[i];}
       if (iLow ( Symbol (), 0 ,i)<min){ min=iLow ( Symbol (), 0 ,i);time_barl = Time[i];}
      }
   if (New_Bar == true ){ 
       ObjectsDeleteAll ( 0 , OBJ_TRENDBYANGLE );
       ObjectsDeleteAll ( 0 , OBJ_VLINE );
      DrawLine( "Start" , 0 ,Time_start, 0 ,Time_start, 0 , 0 , 0 , 2 ,Aqua, false );
      DrawLine( "Up" , 3 ,time_barh,max, 0 , 0 , 315.0 , 0 , 2 ,DeepSkyBlue, true );
      DrawLine( "Up1" , 3 ,time_barh,max,Time_start, 0 , 315.0 , 0 , 2 ,DeepSkyBlue, false );
      DrawLine( "Dn" , 3 ,time_barl,min, 0 , 0 , 45.0 , 0 , 2 ,Orange, true );
      DrawLine( "Dn1" , 3 ,time_barl,min,Time_start, 0 , 45.0 , 0 , 2 ,Orange, false );
    }
//+------------------------------------------------------------------+
   double spead = MarketInfo( Symbol (),MODE_SPREAD);
//+------------------------------------------------------------------+ 
   Comment ( "\nВреме на брокера: " ,TimeToStr( TimeCurrent (),TIME_SECONDS), ", Локално време: " +TimeToStr( TimeLocal (),TIME_SECONDS),
           "\nТекущ спред: " ,DoubleToStr(spead/ 10 , 1 ),
           "\n min:        " ,DoubleToStr(min, Digits ),
           "\n max:       " ,DoubleToStr(max, Digits )
           );
   return ( 0 );
  }
//+------------------------------------------------------------------+
void DrawLine( string name, int lines, datetime time1, double value, datetime time2, double value1, double grd, int style, int wid, color col, bool ray)
{
   ObjectCreate (name,lines, 0 ,time1,value,time2,value1);
   ObjectSet(name, OBJPROP_ANGLE ,grd);
   ObjectSet(name, OBJPROP_COLOR ,col);
   ObjectSet(name, OBJPROP_STYLE ,style);
   ObjectSet(name, OBJPROP_WIDTH ,wid);
   ObjectSet(name, OBJPROP_RAY ,ray);
}
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.10.2007                                                     |
//|  Описание : Вычисляет координаты точки пересечения двух прямых.            |
//|             Каждая прямая задаётся парой координат своих точек.            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    x - массив абсцисс              x[0], x[1] - первая прямая              |
//|                                    x[2], x[3] - вторая прямая              |
//|    y - массив ординат              y[0], y[1] - первая прямая              |
//|                                    y[0], y[1] - вторая прямая              |
//|    t - массив искомых координат    t[0]       - абсцисса                   |
//|                                    t[1]       - ордината                   |
//+----------------------------------------------------------------------------+
void CrossPointOfLines( double & x[], double & y[], double & t[]) {
   double z=(y[ 3 ]-y[ 2 ])*(x[ 1 ]-x[ 0 ])-(y[ 1 ]-y[ 0 ])*(x[ 3 ]-x[ 2 ]);
   ArrayResize (t, 2 );
   ArrayInitialize (t, 0.0 );

   if (z== 0 ) Print ( "CrossPointOfLines(): Не удалось найти точку пересечения!" );
   else {
     double xy1=x[ 1 ]*y[ 0 ]-x[ 0 ]*y[ 1 ];
     double xy2=x[ 3 ]*y[ 2 ]-x[ 2 ]*y[ 3 ];
    t[ 0 ]= NormalizeDouble ((xy1*(x[ 3 ]-x[ 2 ])-xy2*(x[ 1 ]-x[ 0 ]))/z, 0 );
    t[ 1 ]=(xy1*(y[ 3 ]-y[ 2 ])-xy2*(y[ 1 ]-y[ 0 ]))/z;
  }
}

코드 자체는 매우 간단하지만 한 포인트만 먹습니다.

 

시각적 모드에서 테스터의 DailyPivotPoints 표시기가 모든 날짜의 오늘 데이터만 표시하는 이유를 누가 압니까?

그리고 가능하다면 무슨 일이 일어났는지 역사에 보여주기 위해 무엇을 추가해야 할까요? 고맙습니다!

 
lenalebedeva :
정확히 로그 스케일을 의미합니다. MT에서 어떻게 찾나요? 나는 그것을 몇 년 동안 사용해 왔으며 이미 무엇이 있는지 모릅니다.

바라보다

추신

예를 들어, 차트의 마지막 하락 추세를 보고 있는데 차트의 가장자리로 갈수록 창 밖으로 더 낮게 이동하는 것을 볼 수 있습니다. 차트를 미래로 스크롤하고 차트가 자동으로 위로 움직이는 것을 관찰하여 기본 차트에서 촛대를 볼 수 있는 공간을 만듭니다. 음, 이전에 차트 창 상단에서 볼 수 있었던 것이 이제는 차트 창 외부에서 훨씬 더 높게 이동되었습니다. 이것은 차트에 대수 가격 척도를 구현한 것입니다. 그것이 없으면 차트를 오른쪽과 왼쪽뿐만 아니라 위아래로 스크롤해야 할 것입니다. 따라서 차트 창에 데이터를 표시하는 편의를 위해 시간 척도는 선형이고 가격 척도는 대수입니다.

예전에는 컴퓨터가 없던 시절 트레이더들이 그래프 용지를 사용하여 주가를 올려 추세와 전환점을 예측했습니다. 종이에 이러한 방식으로 작성된 차트에는 가격 척도와 시간 척도의 2가지 척도가 있습니다. 이것은 두 개의 선형 척도였습니다. 예를 들어 지난 1년 동안 15분짜리 양초를 모두 담을 수 있는 밀리미터 종이 한 장의 크기를 상상할 수 있습니까? 확실히 그것은 방의 벽 크기일 것입니다(더 많지 않다면). 따라서 화면에서 차트를 스크롤하면 촛대 가격 차트가 벽에 그려지는 모델을 상상할 수 있습니다. 직사각형(예: 빨간색) 프레임도 있습니다. 이것은 모니터입니다. 차트 주위를 이동하는 것은 추세를 따라 이 빨간색 사각형을 이동하는 것에 불과합니다. 그러나 그러면 모니터의 두 눈금이 모두 선형이라고 말할 것입니다. 이것은 사실이지만 부분적으로만 - 차트를 스크롤할 때 약간의 이동 후에 큰 양초(시각적으로 큰 것으로 인식됨)는 크기가 작아지지만 양 극단 사이의 거리를 측정하면 점의 수는 동일하게 유지됩니다.

여기 같은 그래프의 2개의 스크린샷이 있습니다. 첫 번째 스크린샷은 스크린샷일 뿐입니다. 두 번째는 같은 화면의 스냅샷이지만, 마우스 휠을 1눈금 돌린 후 차트가 몇 개의 캔들만큼 과거로 이동했습니다. 종이 한 장을 가져와 첫 번째 스크린샷에 붙이고 시트 가장자리를 따라 빨간색으로 표시된 양초의 고가와 저가를 연필로 표시합니다. 그런 다음 표시된 위험을 두 번째 스크린샷의 동일한 양초로 이동합니다. 무엇이 문제이고 로그 스케일의 이동이 무엇인지 이해하게 될 것입니다(여기서 스케일을 고르지 않게 사용하는 것의 본질은 무엇입니까).

그리고 왜 로그 스케일의 뉘앙스를 파헤칠 필요가 있었습니까? 그들에게서 무엇을 찾기를 바랐습니까?