//+------------------------------------------------------------------+ //| Kuskus_Starlight.mq4 | //| Copyright © 2007, VKX Professional LLC | //| Modified by TaKZiM | //| Original Developed by MartinG | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, VKX Professional LLC." #property link "http://www.vkx-fx.com" //---- #property indicator_separate_window //#property indicator_minimum -1 //#property indicator_maximum 1 #property indicator_buffers 3 #property indicator_color2 Blue #property indicator_color3 Red //#property indicator_width2 4 //#property indicator_width3 4 int LeftNum1=56; int LeftNum2=56; //---- extern int RangePeriods=30; extern double PriceSmoothing=0.3; // =0.67 extern double IndexSmoothing=0.3; // =0.50 extern int DrawType=3; extern int DrawSize=0; //---- string ThisName="Kuskus_Starlight"; int DrawStart; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorBuffers(4); SetIndexLabel(0,"Kuskus"); SetIndexStyle(0,DRAW_NONE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexStyle(1,DrawType,STYLE_SOLID,DrawSize); SetIndexBuffer(1,ExtMapBuffer2); SetIndexStyle(2,DrawType,STYLE_SOLID,DrawSize); SetIndexBuffer(2,ExtMapBuffer3); SetIndexStyle(3,DRAW_NONE); SetIndexBuffer(3,ExtMapBuffer4); //---- string Text=ThisName; Text=Text+" (rPeriods "+RangePeriods; Text=Text+", pSmooth "+DoubleToStr(PriceSmoothing,2); Text=Text+", iSmooth "+DoubleToStr(IndexSmoothing,2); Text=Text+") "; IndicatorShortName(Text); SetIndexLabel(1,NULL); SetIndexLabel(2,NULL); //---- DrawStart=2*RangePeriods+4; // DrawStart= BarNumber calculated from left to right SetIndexDrawBegin(1,DrawStart); SetIndexDrawBegin(2,DrawStart); //---- if (PriceSmoothing>=1.0) { PriceSmoothing=0.9999; Alert("Kuskus61: PriceSmothing factor has to be smaller 1!"); } if (PriceSmoothing<0) { PriceSmoothing=0; Alert("Kuskus61: PriceSmothing factor mustn''t be negative!"); } if (IndexSmoothing>=1.0) { IndexSmoothing=0.9999; Alert("Kuskus61: PriceSmothing factor has to be smaller 1!"); } if (IndexSmoothing<0) { IndexSmoothing=0; Alert("Kuskus61: PriceSmothing factor mustn''t be negative!"); } //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { if (Bars0) // up trend { ExtMapBuffer2[pos]=SmoothedFish; ExtMapBuffer3[pos]=0; } else // else down trend { ExtMapBuffer2[pos]=0; ExtMapBuffer3[pos]=SmoothedFish; } //---- return(0); } //+------------------------------------------------------------------+