Jump to content
Tom Next - Daytrading Community

Marktüberlick in einem Fenster


joshsmi

Recommended Posts

Ihr müßt dafür zuerst eine Watchlist mit Werten füllen. Diese Watchlist und Anderes könnt ihr dann in den Einstellungen des Gesamtblattes auswählen. Watchlist 0 ist default.

 

AFL ist nicht von mir. Von welchem Autor auch immer, feine Sache.

 

//FIle: Multi-Chart
//
//January 10, 2008 
//From AB board
// create a watchlist and select in parameters window - along with other settings 

// GFX Drawing Example 

function GetMonth( MonthNumber ) 
{ 
        switch (MonthNumber) { 
           case 2 : 
             result = "Feb"; 
              break ; 
           case 3 : 
             result = "Mar"; 
             break ; 
           case 4 : 
             result = "Apr"; 
           break ; 
         case 5 : 
           result = "May"; 
           break ; 
         case 6 : 
           result = "Jun"; 
           break ; 
         case 7 : 
           result = "Jul"; 
           break ; 
         case 8 : 
           result = "Aug"; 
           break ; 
         case 9 : 
           result = "Sep"; 
           break ; 
         case 10 : 
           result = "Oct"; 
           break ; 
         case 11 : 
           result = "Nov"; 
           break ; 
         case 12 : 
           result = "Dec"; 
     break ; 
  } 

  return result; 
} 



GfxSetOverlayMode( 2 );

String = "" ;
for ( x = 0 ; x < 200 ; x++ ) 
{ 
       WList = CategoryGetName( categoryWatchlist, x );
        if (WList != "" )
       {
                String = String + WList +","   ;
       }
}
WatchList = ParamList ( "Watch List", String ); 
for ( x = 0 ; x < 200 ; x++ ) 
{ 
       sym = StrExtract ( String, x );
        if (sym == WatchList)
       {
                listNum = x  ;
       }
}

Page = Param ( "Page #", 0 , 0 , 12 , 1 );
ChartsWiNum = Param ( "# Charts Wide", 3 , 1 , 4 , 1 );
ChartsHiNum = Param ( "# Charts High", 3 , 1 , 4 , 1 );
Bars =Param ( "Number Of Bars", 195 , 50 , 250 , 1 ) ;   
lDays =Param ( "Long MA", 200 , 50 , 250 , 1 ) ;
sDays =Param ( "Short MA", 50 , 5 , 100 , 1 ) ;
vDays =Param ( "Volume MA", 50 , 5 , 100 , 1 ) ;
ChartMargin = 5 ;
DateMargin = 10 ;
DataMargin = 20 ;
NumCharts = ChartsWiNum * ChartsHiNum ;
ScreenHeight = Status ( "pxheight" )  ;
SceernWidth = Status ( "pxwidth" ) ;
ChartHeight = ScreenHeight / ChartsHiNum -2   ;
Width = SceernWidth / ChartsWiNum - 2 ;
BarChartHeight=  (0.75 ) * ChartHeight - DataMargin;
VolChartHeight = ChartHeight - BarChartHeight - DataMargin*2 ;
NumberPriceLevels = BarChartHeight / 25 ;
BarChartWidth=  Width - 45 ;
BarWidth = (BarChartWidth - ChartMargin * 3 ) / Bars  ;
LastBar =  BarCount ;
FirstBar =  LastBar - Bars;
_N (list = CategoryGetSymbols( categoryWatchlist, listnum ));
printf ( "Watch List Name\n");
WL = CategoryGetName( categoryWatchlist, listnum );
SymbolNum = Page * NumCharts;

for ( x = 0 ; x < ChartsHiNum ; x++ ) 
{ 
        for ( i = 0 ; i < ChartsWiNum ; i++ ) 
       { 
                notDone = True;
                sym = StrExtract ( list, SymbolNum );
                 if (sym != "" )
                {
                x1 = Width * i + 5 ; 
                y1 = ChartHeight * x + 5 ;
                x2 = Width * (i + 1 );
                y2 = ChartHeight * (x + 1 )-DateMargin;
                 GfxSelectPen ( colorBlack ); 
                 GfxRectangle ( x1, y1, x2, y2 );
                SymbolNum++;

                 SetForeign (sym);

                EMAShort= EMA (C,sDays);
                EMALong= EMA (C,lDays);
                EMAVol= EMA (V,vDays);

                D = Day ();
                M = Month ();
                Y = Year ();

                priceHigh = 0 ;
                VolHigh = 0 ;
                priceMin = 1000000 ;
                 for ( z = FirstBar; z < LastBar ; z++ ) 
                { 
                         Vol = V[z];
                         BarH = H[z];
                         BarL = L[z];
                          if ( Vol > VolHigh ) 
                         { 
                                  VolHigh = Vol;
                         }
                          if ( BarH > priceHigh ) 
                         { 
                                  priceHigh = BarH;
                         }
                          if ( BarL < priceMin ) 
                         { 
                                  priceMin = BarL;
                         }
                }

                LOpen = O[LastBar- 1];
                LHigh = H[LastBar- 1];
                LLow = L[LastBar- 1];
                LClose = C[LastBar- 1];
                LVol = V[LastBar- 1];
                 GfxSelectFont ( "Tahoma" , 8 ); 
                 GfxSetTextColor (colorBlack); 
                 GfxTextOut (sym + "   O: " +LOpen + "   H: " +LHigh + "   L: " +LLow + "   C: " +LClose + "   Vol: " +LVol/ 1000000 + " M", x1+5 , y1+2 ); 

                VolRatio = VolChartHeight /  VolHigh ;
                Range = priceHigh - priceMin;
                Ratio = BarChartHeight / Range ;
                PriceLineLevel = Range / NumberPriceLevels;
                yHi=(((priceHigh - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                 GfxTextOut ( WriteVal (priceHigh, 1.2 ),   x1 + BarChartWidth, yHi -8 );
                 GfxSelectPen ( colorLightGrey ); 
                 GfxMoveTo ( x1 , yHi );
                 GfxLineTo ( x1 + BarChartWidth -5 , yHi );
                 for ( z = 0 ; z < NumberPriceLevels- 1   ; z++ ) 
                { 
                         PriceLevel = PriceLineLevel*z + priceMin;

                         yHi=(((PriceLevel - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                          GfxTextOut ( WriteVal (PriceLevel, 1.2 ),   x1 + BarChartWidth, yHi -8 );
                          GfxSelectPen ( colorLightGrey ); 
                          GfxMoveTo ( x1 , yHi );
                          GfxLineTo ( x1 + BarChartWidth -5 , yHi );
                }

                HighestLast = 0 ;
                w = 1 ;
                sEMAlast = EMAShort[FirstBar];
                lEMAlast = EMALong[FirstBar];
                vEMAlast = EMAVol[FirstBar];
                 for ( z = FirstBar; z < LastBar ; z++ ) 
                {
                         BarH = H[z];
                         BarL = L[z];
                         BarO = O[z];
                         BarC = C[z];
                         Vol = V[z];
                         sEMA = EMAShort[z];
                         lEMA = EMALong[z];
                         vEMA = EMAVol[z];
                         BarDay = D[z];
                         BarMonth = M[z];
                         BarYear = Y[z];

                         yO = (((BarO - priceMin )* Ratio)- BarChartHeight ) * -1 + y1 + DataMargin;
                         yC = (((BarC - priceMin )* Ratio)- BarChartHeight ) * -1 + y1 + DataMargin;
                         yHi = (((BarH - priceMin )* Ratio)- BarChartHeight ) * -1 + y1 + DataMargin;
                         yLo = (((BarL - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin ;
                         ysEMAlast = (((sEMAlast - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                         ysEMA = (((sEMA - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                         ylEMAlast = (((lEMAlast - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                         ylEMA = (((lEMA - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                         vHi = y2 - (Vol * VolRatio)  ;
                         yvEMAlast = y2 - (vEMAlast  * VolRatio) ;
                         yvEMA = y2 - (vEMA * VolRatio)  ;
                         
                          if ( BarH > HighestLast ) 
                         { 
                                  HighestLast = BarH;
                                   GfxSelectPen ( colorBlue );
                         }

                          else
                         { 
                                   GfxSelectPen ( colorRed );
                         }
							// Plot bar
                          GfxMoveTo ( BarWidth * w + x1 + ChartMargin , yHi );
                          GfxLineTo ( BarWidth * w + x1 + ChartMargin, yLo );
                          GfxMoveTo ( BarWidth * w + x1 + ChartMargin -1   , yO );
                          GfxLineTo ( BarWidth * w + x1 + ChartMargin, yO );
                          GfxMoveTo ( BarWidth * w + x1 + ChartMargin +1   , yC );
                          GfxLineTo ( BarWidth * w + x1 + ChartMargin, yC );
                          if ( BarO > BarC)
                         {
                                   GfxSelectPen ( colorRed ); 
                         }
                          else
                         { 
                                   GfxSelectPen ( colorLime );
                         }
							// Plot Volume
                          GfxMoveTo ( BarWidth * w + x1 + ChartMargin , vHi );
                          GfxLineTo ( BarWidth * w + x1 + ChartMargin, y2 );

							// Plot Price and Volume EMAs
                          GfxSelectPen ( colorLime ); 
                          GfxMoveTo ( BarWidth * (w -1 ) + x1  + ChartMargin , ysEMAlast );
                          GfxLineTo ( BarWidth * w + x1 + ChartMargin, ysEMA );
                          GfxSelectPen ( colorDarkRed ); 
                          GfxMoveTo ( BarWidth * (w -1 ) + x1  + ChartMargin , ylEMAlast );
                          GfxLineTo ( BarWidth * w + x1 + ChartMargin, ylEMA );
                          GfxSelectPen ( colorBlack ); 
                          GfxMoveTo ( BarWidth * (w -1 ) + x1  + ChartMargin , yvEMAlast );
                          GfxLineTo ( BarWidth * w + x1 + ChartMargin, yvEMA );
                         w++;
                         
                         sEMAlast = sEMA ;
                         lEMAlast = lEMA ;
                         vEMAlast = vEMA ;
                         
                          GfxSelectFont ( "Tahoma" , 7 ); 
                          GfxSelectPen ( colorLightGrey ); 

							// Draw vertical month separator and X-axis labels
                          if (BarDay== 1 & notDone )
                         {
                                   if (BarMonth == 1 ) myLabel =WriteVal (BarYear, 1.0 );                                  
                                   else myLabel =GetMonth(BarMonth);
                                   GfxTextOut (myLabel,   BarWidth * w + x1 + ChartMargin - 5 , y2 +DateMargin/3 );
                                   GfxMoveTo ( BarWidth * w + x1 + ChartMargin , y2  );
                                   GfxLineTo ( BarWidth * w + x1 + ChartMargin, y1 + DataMargin  );
                                  notDone = False;
                         }

                          if (BarDay== 2 & notDone )
                         {
                                   if (BarMonth == 1 ) myLabel =WriteVal (BarYear, 1.0 );
                                   else myLabel =GetMonth(BarMonth);
                                   GfxTextOut (myLabel,   BarWidth * w + x1 + ChartMargin - 5 , y2 +DateMargin/3 );
                                   GfxMoveTo ( BarWidth * w + x1 + ChartMargin , y2  );
                                   GfxLineTo ( BarWidth * w + x1 + ChartMargin, y1 + DataMargin  );
                                  notDone = False;
                         }

                          if (BarDay== 3 & notDone )
                         {
                                   if (BarMonth == 1 ) myLabel =WriteVal (BarYear, 1.0 );
                                   else myLabel =GetMonth(BarMonth);
                                   GfxTextOut (myLabel,   BarWidth * w + x1 + ChartMargin - 5 , y2 +DateMargin/3 );
                                   GfxMoveTo ( BarWidth * w + x1 + ChartMargin , y2  );
                                   GfxLineTo ( BarWidth * w + x1 + ChartMargin, y1 + DataMargin  );
                                  notDone = False;
                         }

                          if (BarDay== 4 & notDone )
                         {
                                   if (BarMonth == 1 ) myLabel =WriteVal (BarYear, 1.0 );
                                   else myLabel =GetMonth(BarMonth);
                                   GfxTextOut (myLabel,   BarWidth * w + x1 + ChartMargin - 5 , y2 +DateMargin/3 );
                                   GfxMoveTo ( BarWidth * w + x1 + ChartMargin , y2  );
                                   GfxLineTo ( BarWidth * w + x1 + ChartMargin, y1 + DataMargin  );
                                  notDone = False;
                         }

                          if (BarDay== 5 & notDone )
                         {
                                   if (BarMonth == 1 ) myLabel =WriteVal (BarYear, 1.0 );
                                   else myLabel =GetMonth(BarMonth);
                                   GfxTextOut (myLabel,   BarWidth * w + x1 + ChartMargin - 5 , y2 +DateMargin/3 );
                                   GfxMoveTo ( BarWidth * w + x1 + ChartMargin , y2 - VolChartHeight );
                                   GfxLineTo ( BarWidth * w + x1 + ChartMargin, y1 + DataMargin );
                                  notDone = False;
                         }
                          if (BarDay== 6 |BarDay== 7 |BarDay== 8 |BarDay== 9 |BarDay== 10 )
                         {
                                  notDone = True;
                         }
                                                    
                }
                 RestorePriceArrays (); 
                }
       } 
}

post-1535-018145600 1286458818_thumb.png

Link to comment
Share on other sites

Um bei Forex 4 Stellen nach dem Komma zu erhalten, müßt ihr im mittleren Teil zwei Mal von 1.2 auf 1.4 umändern.

 

VolRatio = VolChartHeight /  VolHigh ;
                Range = priceHigh - priceMin;
                Ratio = BarChartHeight / Range ;
                PriceLineLevel = Range / NumberPriceLevels;
                yHi=(((priceHigh - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                 GfxTextOut ( WriteVal (priceHigh, 1.4 ),   x1 + BarChartWidth, yHi -8 );
                 GfxSelectPen ( colorLightGrey ); 
                 GfxMoveTo ( x1 , yHi );
                 GfxLineTo ( x1 + BarChartWidth -5 , yHi );
                 for ( z = 0 ; z < NumberPriceLevels- 1   ; z++ ) 
                { 
                         PriceLevel = PriceLineLevel*z + priceMin;

                         yHi=(((PriceLevel - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                          GfxTextOut ( WriteVal (PriceLevel, 1.4 ),   x1 + BarChartWidth, yHi -8 );
                          GfxSelectPen ( colorLightGrey ); 
                          GfxMoveTo ( x1 , yHi );
                          GfxLineTo ( x1 + BarChartWidth -5 , yHi );

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...