EG_CandleTrendLine

Author: Евгений Гребенщиков
Price Data Components
Series array that contains open prices of each barSeries array that contains close prices for each bar
0 Views
0 Downloads
0 Favorites
EG_CandleTrendLine
ÿþ/*

!:@8?B ?><>305B 287C0;L=> ?>=OBL 42865=85 F5=K 2A5E <;04H8E "$ 2=CB@8 A25G8 >4=>3> 8;8 =5A:>;L:8E AB0@H8E "$.

 B0: 65 >A<KA;8BL ;>38:C @01>BK 8=48:0B>@>2 8 ?>4>1@0BL 8E ?0@0<5B@K 4;O :064>3> <;04H53> "$.

!;54C5B CG5ABL B>B D0:B, GB> 287C0;L=0O =0AB@>9:0 MB> ?5@2K9 MB0? 2 ?>41>@5 8=48:0B>@0 4;O ?@8=OB8O

@5H5=8O > 53> 3>4=>AB8/=53>4=>AB8, =0?@8<5@, 2 M:A?5@B5. 0;55 =5>1E>48<> 8A?>;L7>20BL 8=K5 <5B>4K

8A?KB0=8O ?@5420@8B5;L=> 2K1@0==>3> :0=4840B0 4;O @01>BK 2 M:A?5@B5.

//

//-- A?>;L7>20=85,=0?@8<5@:

1.8=CBL =0 A25GC 4 8/8;8 D1 8/8;8 H1 8 B4 ;

2.!<>B@5BL B@5=4>2K5 ;8=88 =0 2A5E <;04H8E "$.

!:@8?B =5 @01>B05B =0 W1; MN.

//-- 0AB@>9:8:

WIDTH=1;    // @07<5@ ?@02>9 8 ;52>9 F5=>2>9 <5B:8:1,2,3,4,5,6.

PRICE_TAG=1;// >B>1@060BL F5=>2K5 <5B:8: 1; 0-=5 >B>1@060BL

*/

//+------------------------------------------------------------------+

//|                                           EG_CandleTrendLine.mq4 |

//|                                 22.01.20203. 235=89 @515=I8:>2 |

//|                                                 eg3083@yandex.ru |

//+------------------------------------------------------------------+

#property copyright "235=89 @515=I8:>2"

#property link      "eg3083@yandex.ru"

#property version   "1.00"

#property strict

//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

void OnStart()

  {

//---

   int    i,op_NumBarM1,cl_NumBarM1,tf,

   

//-- =0AB@>9:8 @07<5@0 8 >B>1@065=8O ;52>9 8 ?@02>9 F5=>2KE <5B>: ---+

//                                                                   |

         WIDTH=1;  // @07<5@ ?@02>9 8 ;52>9 F5=>2>9 <5B:8:1,2,3,4,5,6|

   bool  PRICE_TAG=1;// >B>1@060BL F5=>2K5 <5B:8: 1; 0-=5 >B>1@060BL |

//-------------------------------------------------------------------+   

   double   op_priceM1,cl_priceM1;

   datetime op_timeM1,cl_timeM1,diff;

   string   name1,name2,name3;

   

//-- =5 2K?>;=OBL A:@8?B =0 70?@5I5==KE "$ --------------------------+  

      if(_Period==1){return;}    //<1

      if(_Period==10080){return;}//=545;O

      if(_Period==43200){return;}//<5AOF

      

//-------------------------------------------------------------------+

//- ?5@2K5 :>>@48=0BK >B@8A>2:8 B@5=4>2>9 ;8=88 -

//-------------------------------------------------------------------+

      op_timeM1=WindowTimeOnDropped();                 // OPEN - 40B0 8 2@5<O >B:@KB8O 10@0 ;N1>3> @07@5H5==>3> "$

      op_NumBarM1=iBarShift(NULL,PERIOD_M1,op_timeM1); // 8=45:A 10@0 =0 M1 ?> F5=5 OPEN 10@0 AB0@H53> "$

      op_priceM1=iOpen(NULL,PERIOD_M1,op_NumBarM1);    // OPEN - F5=0 >B:@KB8O 10@0 M1

      

//-------------------------------------------------------------------+      

//- 2B>@K5 :>>@48=0BK >B@8A>2:8 B@5=4>2>9 ;8=88 -

//-------------------------------------------------------------------+

//5<8==240A5: ;14<8==840A5: ; 29<8==1740A5: ; 59<8==3540A5:; 239<8==14340A5: ; 24G=86399A5:



    if(_Period==1440){diff=86399; tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020|0x0040;}// 2K1>@ AB0@H53> "$, A =53> A:@8?B @8AC5B =0 <;04H8E "$

    if(_Period==240) {diff=14340; tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020;}

    if(_Period==60)  {diff=3540;  tf=0x0001|0x0002|0x0004|0x0008|0x0010;}

    if(_Period==30)  {diff=1740;  tf=0x0001|0x0002|0x0004|0x0008;}

    if(_Period==15)  {diff=840;   tf=0x0001|0x0002|0x0004;}

    if(_Period==5)   {diff=240;   tf=0x0001|0x0002;}  



    cl_timeM1=op_timeM1 + diff ;                    // :>>@48=0B0 40BK 8 2@5<5=8 10@0 1 ?> F5=5 CLOSE AB0@H53> "$

    cl_NumBarM1=iBarShift(NULL,PERIOD_M1,cl_timeM1);// 8=45:A 10@0 1

    cl_priceM1=iClose(NULL,PERIOD_M1,cl_NumBarM1);  // :>>@48=0B0 F5=K CLOSE 10@0 1

      

//--- B@5=4>2K5 ;8=88 -----------------------------------------------+ 

   for(i=0;i<1000000;i++){name1="Point_"+i; if(ObjectFind(name1)<0) break;}     // ?>72>;O5B @8A>20BL <=>65AB2> >1J5:B>2 A >48=0:>2K< 8<5=5<, 4>102;OO : 8<5=8 ?>@O4:>2K9 =><5@

  

   ObjectCreate(0,name1,OBJ_TREND,0,op_timeM1,op_priceM1,cl_timeM1,cl_priceM1); // A>740BL >1J5:B B@5=4>20O ;8=8O A :>>@48=0B0<8 F5=K 8 2@5<5=8  

   ObjectSet(name1,OBJPROP_COLOR,clrWhite);                                     // 7040BL F25B >1J5:B0

   ObjectSet(name1,OBJPROP_STYLE,STYLE_DASH);                                   // 7040BL AB8;L >1J5:B0 (?C=:B8@, ;8=8O...)

   ObjectSet(name1,OBJPROP_RAY,false);                                          // 70?@5B8BL >1J5:BC >B>1@065=85 2?@02>

   ObjectSet(name1,OBJPROP_TIMEFRAMES,tf);                                      // 7040BL >1J5:BC =0 :0:8E "$ 53> 284=> (>B>1@065=85)

//-------------------------------------------------------------------+ 

   if(PRICE_TAG==true)// on/off F5=>2K5 <5B:8

   {  

//--- ;520O F5=>20O <5B:0 -------------------------------------------+

   for(i=0;i<1000000;i++){name2="op_Price_"+i; if(ObjectFind(name2)<0) break;}

   

   ObjectCreate(0,name2,OBJ_ARROW_LEFT_PRICE,0,cl_timeM1,cl_priceM1,0,0);        // A>740BL >1J5:B ;520O F5=>20O <5B:0 A :>>@48=0B0<8 F5=K 8 2@5<5=8

   ObjectSetInteger(0,name2,OBJPROP_COLOR,clrWhite);

   ObjectSetInteger(0,name2,OBJPROP_WIDTH,WIDTH); // @07<5@ ;52>9 <5B:8

   ObjectSet(name2,OBJPROP_TIMEFRAMES,tf);



//--- ?@020O F5=>20O <5B:0 ------------------------------------------+

   for(i=0;i<1000000;i++){name3="cl_Price_"+i; if(ObjectFind(name3)<0) break;}

   

   ObjectCreate(0,name3,OBJ_ARROW_RIGHT_PRICE,0,op_timeM1,op_priceM1,0,0);       // A>740BL >1J5:B ?@020O F5=>20O <5B:0 A :>>@48=0B0<8 F5=K 8 2@5<5=8

   ObjectSetInteger(0,name3,OBJPROP_COLOR,clrWhite);

   ObjectSetInteger(0,name3,OBJPROP_WIDTH,WIDTH); //@07<5@ ?@02>9 <5B:8

   ObjectSet(name3,OBJPROP_TIMEFRAMES,tf);

   }

}

//+------------------------------------------------------------------+

Comments