fibocalc_V31(2)

Author: Copyright � 2006,
fibocalc_V31(2)
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
fibocalc_V31(2)
/*+------------------------------------------------------------------+
 |                                                         FiboCalc  |
 |                                         Author: Copyright © 2006, |
 |                                                                   |
 |                                                                   |
 +------------------------------------------------------------------+*/
#property copyright "Copyright © 2006,"
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 DarkGreen
#property indicator_color2 Maroon
#property indicator_color3 Magenta
#property indicator_color4 Goldenrod
//---- buffers
double PrevDayHiBuffer[];
double PrevDayLoBuffer[];
double PrevDayOpenBuffer[];
double PrevDayCloseBuffer[];
//----
int fontsize = 8;
double PrevDayHi, PrevDayLo, PrevDayOpen , PrevDayClose, fb, fs, fe, tp1, tp2, tp3;
double LastHigh, LastLow, LastOpen, LastClose, x;
double ri, re1, re2, re3, ra1, ra2, ra3;
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   ObjectDelete("PrevDayHi");
   ObjectDelete("PrevDayLo");
   ObjectDelete("PrevDayOpen");
   ObjectDelete("PrevDayClose");
   ObjectDelete("fe");
   ObjectDelete("fe Line");
   ObjectDelete("fs");
   ObjectDelete("fs Line");
   ObjectDelete("tp3");
   ObjectDelete("tp3 Line");
   ObjectDelete("tp2");
   ObjectDelete("tp2 Line");
   ObjectDelete("tp1");
   ObjectDelete("tp1 Line");
   ObjectDelete("fb");
   ObjectDelete("fb Line");
   Comment(" ");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexStyle(3,DRAW_LINE);
//----
   SetIndexBuffer(0, PrevDayHiBuffer);
   SetIndexBuffer(1, PrevDayLoBuffer);
   SetIndexBuffer(2, PrevDayOpenBuffer);
   SetIndexBuffer(3, PrevDayCloseBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="Prev Hi-Lo levels";
   IndicatorShortName(short_name);
   SetIndexLabel(0, short_name);
   SetIndexLabel(1, "Maroon");
   SetIndexLabel(2, "Magenta");
   SetIndexLabel(3, "Goldenrod");      
//----
   SetIndexDrawBegin(0,1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() 
  {
   int counted_bars = IndicatorCounted();
   int limit, i;
//---- indicator calculation
   if(counted_bars == 0)
     {
       x = Period();
       if(x > 240) 
           return(-1);
     }
   limit = (Bars - counted_bars) - 1;
//----
   for(i = limit; i >= 0; i--)
     {
       LastHigh = High[Highest(NULL, 0, MODE_HIGH, i + 1)];
       LastLow = Low[Lowest(NULL, 0, MODE_LOW, i + 1)];
       if(Open[i+1] > LastOpen) 
           LastOpen = Open[i+1];
       //----
       if(TimeDay(Time[i]) != TimeDay(Time[i+1]))
         {
           PrevDayHi = LastHigh;
           PrevDayLo = LastLow;
           PrevDayOpen = LastClose;
           PrevDayClose = Open[i];
           //----
           LastLow = Open[i];
           LastHigh = Open[i];
           LastOpen = Open[i];
           LastClose = Open[i];
           //----
           if(ObjectFind("PrevDayHi") != 0)
             {
               ObjectCreate("PrevDayHi", OBJ_TEXT, 0, 0, 0);
               ObjectSetText("PrevDayHi", "                Day High", fontsize, "Arial", Black);
             }
           else
             {
               ObjectMove("PrevDayHi", 0, Time[i], PrevDayHi);
             }
           //----
           if(ObjectFind("PrevDayLo") != 0)
             {
               ObjectCreate("PrevDayLo", OBJ_TEXT, 0, 0, 0);
               ObjectSetText("PrevDayLo", "                Day Low", fontsize, "Arial", Black);
             }
           else
             {
               ObjectMove("PrevDayLo", 0, Time[i], PrevDayLo);
             }
           //----
           if(ObjectFind("PrevDayOpen") != 0)
             {
               ObjectCreate("PrevDayOpen", OBJ_TEXT, 0, 0, 0);
               ObjectSetText("PrevDayOpen", "                Prev. Day Open", fontsize, 
                             "Arial", White);
             }
           else
             {
               ObjectMove("PrevDayOpen", 0, Time[i], PrevDayOpen);
             }
           //----
           if(ObjectFind("PrevDayClose") != 0)
             {
               ObjectCreate("PrevDayClose", OBJ_TEXT, 0, 0, 0);
               ObjectSetText("PrevDayClose", "                Prev. Day Close", fontsize, 
                             "Arial", Black);
             }
           else
             {
               ObjectMove("PrevDayClose", 0, Time[i], PrevDayClose);
             }

         }
       PrevDayHiBuffer[i] = PrevDayHi;
       PrevDayLoBuffer[i] = PrevDayLo;
       PrevDayOpenBuffer[i] = PrevDayOpen;
       PrevDayCloseBuffer[i] = PrevDayClose;
     }
// BUY
   if(Ask > LastClose) 
     {
       fb = PrevDayHi - (PrevDayHi - PrevDayLo)*0.382;
       fe = PrevDayHi - (PrevDayHi - PrevDayLo)*0.618;
       tp1 = ((PrevDayHi - PrevDayLo)*0.618) + fb;
       tp2 = (PrevDayHi - PrevDayLo) + fb;
       tp3 = 1.618*(PrevDayHi - PrevDayLo) + fb;
       ri = MathRound((fb - fe)*10000) / 10000;
       re1=MathRound((tp1 - fb)*10000) / 10000;
       re2=MathRound((tp2 - fb)*10000) / 10000;
       re3=MathRound((tp3 - fb)*10000) / 10000;
       ra1=MathRound((re1 / ri)*10) / 10;
       ra2=MathRound((re2 / ri)*10) / 10;
       ra3=MathRound((re3 / ri)*10) / 10;
       //----
       if(ObjectFind("fb") != 0)
         {
           ObjectCreate("fb", OBJ_TEXT, 0, Time[0], fb);
           ObjectSetText("fb", " BUY LEVEL", 8, "Arial", EMPTY);
         }
       else
         {
           ObjectMove("fb",fb, Time[0], fb);
         }
       //----
       if(ObjectFind("fb Line") != 0)
         {
           ObjectCreate("fb Line", OBJ_HLINE, 0, Time[0],fb);
           ObjectSet("fb Line", OBJPROP_STYLE, STYLE_DASHDOT);
           ObjectSet("fb Line", OBJPROP_COLOR, Blue);
         }
       else
         {
           ObjectMove("fb Line",0, Time[0], fb);
         }
       //----
       if((ra1 > 2) && (ra2 > 2) && (ra3 > 2))
           Comment("Owner : ", AccountName()," Account number : ", AccountNumber(),
           "\n\nPrevDayHi ",PrevDayHi,"\nPrevDayLo ", PrevDayLo,"\nTrend was UP ",
           "\nBUY @ ",fb ,"\nStopLoss ",fe,"\nTakeProit 1 ",tp1 ,
           " Risk/Reward Ratio : ", ra1 ," OK Trade ","\nTakeProit 2 ",tp2 ,
           " Risk/Reward Ratio : ", ra2 ," OK Trade ","\nTakeProit 3 ",tp3,
           " Risk/Reward Ratio : ", ra3 ," OK Trade ");
       else
           Comment("Owner : ", AccountName()," Account number : ", AccountNumber(),
           "\n\nPrevDayHi ",PrevDayHi,"\nPrevDayLo ", PrevDayLo,"\nTrend was UP ",
           "\nBUY @ ",fb ,"\nStopLoss ",fe,"\nTakeProit 1 ",tp1 ,
           " Risk/Reward Ratio : ", ra1 ," NO TRADE ","\nTakeProit 2 ",tp2 ,
           " Risk/Reward Ratio : ", ra2 ," NO TRADE ","\nTakeProit 3 ",tp3,
           " Risk/Reward Ratio : ", ra3 ," NO TRADE ");

     }
// SELL
   if(Bid < LastClose) 
     {
       fs = (PrevDayHi - PrevDayLo)*0.382 + (PrevDayLo);
       fe = (PrevDayHi - PrevDayLo)*0.618 + (PrevDayLo);
       tp1 = ((PrevDayLo - PrevDayHi)*0.618) + fs;
       tp2 = (PrevDayLo - PrevDayHi) + fs;
       tp3 = 1.618*(PrevDayLo - PrevDayHi) + fs;
       ri = MathRound((fs - fe)*10000) / 10000;
       re1 = MathRound((tp1 - fs)*10000) / 10000;
       re2 = MathRound((tp2 - fs)*10000) / 10000;
       re3 = MathRound((tp3 - fs)*10000) / 10000;
       ra1 = MathRound((re1 / ri)*10) / 10;
       ra2 = MathRound((re2 / ri)*10) / 10;
       ra3 = ((re3 / ri)*10) / 10;
       //----
       if(ObjectFind("fs") != 0)
         {
           ObjectCreate("fs", OBJ_TEXT, 0, Time[0], fs);
           ObjectSetText("fs", " SELL LEVEL", 8, "Arial", EMPTY);
         }
       else
         {
           ObjectMove("fs",fs, Time[0], fs);
         }
       //----
       if(ObjectFind("fs Line") != 0)
         {
           ObjectCreate("fs Line", OBJ_HLINE, 0, Time[0],fs);
           ObjectSet("fs Line", OBJPROP_STYLE, STYLE_DASHDOT);
           ObjectSet("fs Line", OBJPROP_COLOR, Red);
         }
       else
         {
           ObjectMove("fs Line",0, Time[0], fs);
         }
       //----
       if((ra1 > 2) && (ra2 > 2) && (ra3 > 2))
           Comment("Owner : ", AccountName(),"Account number : ", AccountNumber(),
           "\n\nPrevDayHi ",PrevDayHi,"\nPrevDayLo ", PrevDayLo,"\nTrend was Down ",
           "\nSELL @ ",fs ,"\nStopLoss ",fe,"\nTakeProit 1 ",tp1 ,
           " Risk/Reward Ratio : ", ra1 ," OK Trade ","\nTakeProit 2 ",tp2 ,
           " Risk/Reward Ratio : ", ra2 ," OK Trade ","\nTakeProit 3 ",tp3,
           " Risk/Reward Ratio : ", ra3 ," OK Trade ");
       else
           Comment("Owner : ", AccountName(),"Account number : ", AccountNumber(),
           "\n\nPrevDayHi ",PrevDayHi,"\nPrevDayLo ", PrevDayLo,"\nTrend was Down ",
           "\nSELL @ ",fs ,"\nStopLoss ",fe,"\nTakeProit 1 ",tp1 ,
           " Risk/Reward Ratio : ", ra1 ," NO TRADE ","\nTakeProit 2 ",tp2 ,
           " Risk/Reward Ratio : ", ra2 ," NO TRADE ","\nTakeProit 3 ",tp3,
           " Risk/Reward Ratio : ", ra3 ," NO TRADE ");
     }
//----
   if(ObjectFind("fe") != 0)
     {
       ObjectCreate("fe", OBJ_TEXT, 0, Time[0], fe);
       ObjectSetText("fe", " STOPLOSS LEVEL", 8, "Arial", EMPTY);
     }
   else
     {
       ObjectMove("fe",fe, Time[0], fe);
     }
//----
   if(ObjectFind("fe Line") != 0)
     {
       ObjectCreate("fe Line", OBJ_HLINE, 0, Time[0],fe);
       ObjectSet("fe Line", OBJPROP_STYLE, STYLE_DASHDOT);
       ObjectSet("fe Line", OBJPROP_COLOR, OrangeRed );
     }
   else
     {
       ObjectMove("fe Line",0, Time[0], fe);
     }
//----
   if(ObjectFind("tp1") != 0)
     {
       ObjectCreate("tp1", OBJ_TEXT, 0, Time[0], tp1);
       ObjectSetText("tp1", " PROFIT TARGET 1", 8, "Arial", EMPTY);
     }
   else
     {
       ObjectMove("tp1",tp1, Time[0],tp1 );
     }
//----
   if(ObjectFind("tp1 Line") != 0)
     {
       ObjectCreate("tp1 Line", OBJ_HLINE, 0, Time[0],tp1);
       ObjectSet("tp1 Line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
       ObjectSet("tp1 Line", OBJPROP_COLOR, SpringGreen );
     }
   else
     {
       ObjectMove("tp1 Line",0, Time[0],tp1 );
     }
//----
   if(ObjectFind("tp2") != 0)
     {
       ObjectCreate("tp2", OBJ_TEXT, 0, Time[0], tp2);
       ObjectSetText("tp2", " PROFIT TARGET 2", 8, "Arial", EMPTY);
     }
   else
     {
       ObjectMove("tp2",tp2, Time[0],tp2);
     }
   if(ObjectFind("tp2 Line") != 0)
     {
       ObjectCreate("tp2 Line", OBJ_HLINE, 0, Time[0],tp2);
       ObjectSet("tp2 Line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
       ObjectSet("tp2 Line", OBJPROP_COLOR, SpringGreen );
     }
   else
     {
        ObjectMove("tp2 Line",0, Time[0],tp2);
     }
//----
   if(ObjectFind("tp3") != 0)
     {
       ObjectCreate("tp3", OBJ_TEXT, 0, Time[0], tp3);
       ObjectSetText("tp3", " PROFIT TARGET 3", 8, "Arial", EMPTY);
     }
   else
     {
       ObjectMove("tp3",tp3, Time[0], tp3);
     }
//----
   if(ObjectFind("tp3 Line") != 0)
     {
       ObjectCreate("tp3 Line", OBJ_HLINE, 0, Time[0],tp3);
       ObjectSet("tp3 Line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
       ObjectSet("tp3 Line", OBJPROP_COLOR, SpringGreen );
     }
   else
     {
       ObjectMove("tp3 Line",0, Time[0],tp3);
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---