Thema: Neues Projekt
Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 02.12.21
Sirocool Sirocool ist offline
Mitglied
 
Registriert seit: Feb 2014
Ort: Berlin
Beiträge: 42
Sirocool befindet sich auf einem aufstrebenden Ast
Standard Neues Projekt

Project 1 = STOCHASTIC

LONG und SHORT Signale kommen von der Mainlinie sowie Signallinie es folgt demnächst noch das Trendsignal.

Ihr werdet sehen die dritte wieder gabe ist sehr hilfreich beim Traden.

ich bin für Anregungen und änderungen gerne offen wo man was noch verbessern kann.

FOLGEARBEITEN:

Trendsignal wiedergeben als Punkt
Alert



Code:
//+------------------------------------------------------------------+
//|                SHARK_Stochastic_CLASSIC_V.2.1.0 - 1121           |
//|                         Copyright 2021                           |
//|                      www.companyname.net                         |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//|                       Farbenauswahl                              |
//|                                                                  |
//| Farbe 01 - C'35,248,48' - Grün                                   |
//| Farbe 02 - C'204,0,15'  - Rot                                    |
//| Farbe 03 - C'93,219,231'- Hellblau                               |
//| Farbe 04 - C'248,86,13' - Orange                                 |
//| Farbe 05 - C'204,0,183' - Magenta                                |
//| Farbe 06 - C'64,121,246'- Dunkelblau                             |
//| Farbe 07 - C'237,252,255'-Weiß                                   |
//| Farbe 07 - C'254,239,79'- Hellgelb                               |
//|                                                                  |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers  5

#property indicator_minimum 0
#property indicator_maximum 100

extern string SETTING = "";

extern int    K_PERIOD =  5;
extern int    D_PERIOD =  3;
extern int     Slowing =  3;

extern int Upper_Limit = 80;
extern int Lower_Limit = 20;

extern ENUM_MA_METHOD  StoSignalMethod = MODE_SMA;

extern ENUM_APPLIED_PRICE APPLEY = PRICE_CLOSE;
extern ENUM_STO_PRICE PRICE_RANGE = 0;

extern string STYL = "";

extern color Upper_Color = C'204,0,15';
extern color Lower_Color = C'35,248,48';
extern color Hlines_Background = C'51,31,52';

extern string ALARM = "";


//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string PriceTypeToString(int pt)
  {
   string answer;
   switch(pt)
     {
      case 0:
         answer = "Close"    ;
         break;
      case 1:
         answer = "Open"     ;
         break;
      case 2:
         answer = "High"     ;
         break;
      case 3:
         answer = "Low"      ;
         break;
      case 4:
         answer = "Median"   ;
         break;
      case 5:
         answer = "Typical"  ;
         break;
      case 6:
         answer = "Wighted"  ;
         break;
      default:
         answer = "Invalid price field requested";
         Alert(answer);
     }
   return(answer);
  }


string Name ="SHARK_STOCHASTIC_CLASSIC_V.2.1.0 - 1121 " + "("+K_PERIOD +","+ D_PERIOD+","+Slowing+","+PriceTypeToString(APPLEY)+","+Upper_Limit+","+Lower_Limit+")";


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+

int windowIndex=WindowFind(Name);

// ==================================== rectangle names
string NameTopLev=windowIndex+"LevelTop";       //50 -
string NameWaitUp=windowIndex+"LevelWaitTop";   // 55
string NameWaitLo=windowIndex+"LevelWaitBot";   //-45
string NameBotLev=windowIndex+"LevelBot";       //30


//+------------------------------------------------------------------+
//|  Buffer                                                          |
//+------------------------------------------------------------------+
double SHARK_BUFFER_M[],SHARK_BUFFER_S[],SHARK_BUFFER_UP[],SHARK_BUFFER_DN[],SHARK_BUFFER_SIGNAL[];

bool initFinished=false;
datetime time_alert;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   IndicatorBuffers(5);
   IndicatorDigits(Digits);//max. 2

   SetIndexBuffer(0,SHARK_BUFFER_M,INDICATOR_DATA);
   SetIndexStyle(0,DRAW_LINE,EMPTY,1,C'64,121,246');
   SetIndexLabel(0,"MAIN");

   SetIndexBuffer(1,SHARK_BUFFER_S,INDICATOR_DATA);
   SetIndexStyle(1,DRAW_LINE,EMPTY,1,C'204,0,15');
   SetIndexLabel(1,"SIGNAL");

   SetIndexBuffer(2,SHARK_BUFFER_UP,INDICATOR_DATA);
   SetIndexStyle(2,DRAW_ARROW,EMPTY,2,C'0,255,0');
   SetIndexArrow(2,159);
   SetIndexLabel(2,NULL);

   SetIndexBuffer(3,SHARK_BUFFER_DN,INDICATOR_DATA);
   SetIndexStyle(3,DRAW_ARROW,EMPTY,2,C'255,0,0');
   SetIndexArrow(3,159);
   SetIndexLabel(3,NULL);

   SetIndexBuffer(4,SHARK_BUFFER_SIGNAL,INDICATOR_DATA);
   SetIndexStyle(4,DRAW_NONE,EMPTY,1,clrNONE);
   SetIndexLabel(4,"TREND");

   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   ObjectsDeleteAll();
// Löschen wir alle Objekte

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   _CreateLevelChanel(Upper_Limit,Lower_Limit,Hlines_Background);
   _Upper_Lower_Line(Upper_Limit,Lower_Limit,Upper_Color,Lower_Color);





   int counted_bars=IndicatorCounted(),limit,i;

   if(counted_bars<0)
      return(-1);
   if(counted_bars>0)
      counted_bars--;

   limit=MathMin(Bars-counted_bars,Bars-1);




   for(i = limit; i >= 0 && !IsStopped(); i--)
     {
      SHARK_BUFFER_M[i]= iStochastic(Symbol(),Period(),K_PERIOD,D_PERIOD,Slowing,StoSignalMethod,PRICE_RANGE,MODE_MAIN,i);
      SHARK_BUFFER_S[i]= iStochastic(Symbol(),Period(),K_PERIOD,D_PERIOD,Slowing,StoSignalMethod,PRICE_RANGE,MODE_SIGNAL,i);
      SHARK_BUFFER_SIGNAL[i] = SHARK_BUFFER_M[i] - SHARK_BUFFER_S[i];

      //+------------------------------------------------------------------+
      //| LONG - TRENDSIGNAL                                               |
      //+------------------------------------------------------------------+
      if(((SHARK_BUFFER_S[i] >= 20) && ( SHARK_BUFFER_S[i+1] <= 20 )) || ((SHARK_BUFFER_M[i] >= 20) && ( SHARK_BUFFER_M[i+1] <= 20 ) && (SHARK_BUFFER_M[i] > SHARK_BUFFER_S[i]) &&( SHARK_BUFFER_S[i] < 20 )) )
        {
         SHARK_BUFFER_UP[i+1] = SHARK_BUFFER_M[i+1];  SHARK_BUFFER_UP[i+1] = SHARK_BUFFER_S[i+1];
        }
      //+------------------------------------------------------------------+
      //| SHORT - TRENDSIGNAL                                                   |
      //+------------------------------------------------------------------+
      if(((SHARK_BUFFER_S[i] <= 80) && ( SHARK_BUFFER_S[i+1] >= 80 )) || ((SHARK_BUFFER_M[i] <= 80) && ( SHARK_BUFFER_M[i+1] >= 80 ) && (SHARK_BUFFER_M[i] < SHARK_BUFFER_S[i]) &&( SHARK_BUFFER_S[i] > 80 )))
        {
          SHARK_BUFFER_DN[i+1] = SHARK_BUFFER_M[i+1];SHARK_BUFFER_DN[i+1] = SHARK_BUFFER_S[i+1];
        }







     }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   return(0);
  }



//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void _CreateLevelChanel(int Upper, int Lower, color BG)
  {
   if(true)
     {
      if(ObjectFind(0,NameTopLev)!=windowIndex)
         if(!ObjectCreate(0,NameTopLev,OBJ_RECTANGLE,windowIndex,
                          Bars-1,80,                     //ChartBegin,70
                          Time[0],100)      //Now,100
           )
            Print(__FUNCTION__+" "+NameTopLev+" failed, Code="+IntegerToString(_LastError));
      ObjectSetInteger(0,NameTopLev,OBJPROP_COLOR,C'2,51,4');

      if(ObjectFind(0,NameBotLev)!=windowIndex)
         if(!ObjectCreate(0,NameBotLev,OBJ_RECTANGLE,windowIndex,
                          Bars-1,20,                      //ChartBegin,50
                          Time[0],0)                    //Now,500
           )
            Print(__FUNCTION__+" "+NameBotLev+" failed, Code="+IntegerToString(_LastError));
      ObjectSetInteger(0,NameBotLev,OBJPROP_COLOR,C'51,0,4');
     }

  }

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

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void _Upper_Lower_Line(int UPPER_HEIGHT, int LOWER_DEPTH, color HEIGHT_COLOR, color DEPTH_COLOR)
  {

   if(initFinished==false)
     {
      IndicatorShortName(Name);

      windowIndex=WindowFind(Name);

      if(windowIndex<0)
        {
         // wenn die Nummer des Unterfensters -1 gleich ist, so tritt der Fehler auf
         Print("Can\'t find window");
         //return(0);
        }
      //+------------------------------------------------------------------+
      //|  OVERBOUGHT BEREICH 80 %                                         |
      //+------------------------------------------------------------------+

      ObjectCreate("UPPERTEXT",OBJ_LABEL,windowIndex,0,LOWER_DEPTH);
      ObjectSet("UPPERTEXT",OBJPROP_XDISTANCE,5);
      ObjectSet("UPPERTEXT",OBJPROP_YDISTANCE,25);
      ObjectSetText("UPPERTEXT", "OVERBOUGHT",10,"Times New Roman",clrWhiteSmoke);

      // wir zeichnen die Linie im Unterfenster unseres Indikators
      ObjectCreate("Upperline",OBJ_HLINE,windowIndex,0,LOWER_DEPTH);
      ObjectSet("Upperline",OBJPROP_COLOR,HEIGHT_COLOR);
      ObjectSet("Upperline",OBJPROP_WIDTH,1);
      ObjectSet("Upperline",OBJPROP_STYLE,STYLE_DOT);
      WindowRedraw();
      // wir zeichnen das Fenster, damit wir die Linie sehen
      
      //+------------------------------------------------------------------+
      //|  OVERSOLD BEREICH 20 %                                           |
      //+------------------------------------------------------------------+
      ObjectCreate("LOWERTEXT",OBJ_LABEL,windowIndex,0,LOWER_DEPTH);
      ObjectSet("LOWERTEXT",OBJPROP_XDISTANCE,5);
      ObjectSet("LOWERTEXT",OBJPROP_YDISTANCE,175);
      ObjectSetText("LOWERTEXT", "OVERSOLD",10,"Times New Roman",clrWhiteSmoke);
      
      // wir zeichnen die Linie im Unterfenster unseres Indikators
      ObjectCreate("Lowerline",OBJ_HLINE,windowIndex,0,UPPER_HEIGHT);
      ObjectSet("Lowerline",OBJPROP_COLOR,DEPTH_COLOR);
      ObjectSet("Lowerline",OBJPROP_WIDTH,1);
      ObjectSet("Lowerline",OBJPROP_STYLE,STYLE_DOT);
      WindowRedraw();
      // wir zeichnen das Fenster, damit wir die Linie sehen

      initFinished=true;
      // Das Zeichen wurde schon beendet
     }


  }
//+------------------------------------------------------------------+

[IMG]bilderupload.org/bild/118359332-stochastic[/IMG]

Link zum Bild fals nicht angezeigt wird