Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 11.02.11
korak korak ist offline
Neues Mitglied
 
Registriert seit: Feb 2011
Beiträge: 4
korak befindet sich auf einem aufstrebenden Ast
Standard Hilfe, wie kann ich den Indikator verschieben?

Hallo,
ich bin neu hier und hoffe, dass jemand mir helfen kann. Bis jetzt habe ich ein Konto bei CMC und FX Flat, bei beiden habe ich gute Erfahrungen mit dem Indikator: Linear Regression (14,1) gemacht. Da ich in automatischen Handel einsteigen möchte habe ich jetzt den Broker gewechselt um mit Meta Trader4 handeln zu können. Leider stelle ich fest, dass der Indikator Linear Regression (14,1) für MT4 nirgendwo zu finden ist, ich habe schon wirklich eine ganze Menge durchgesucht und ausprobiert, leider ohne Erfolg.
14 im Klammern bedeutet Periode und solchen Indikator findet man überall
1 im Klammern bedeutet Verschiebung und solchen Indikator für MT4 gibts nicht.
Diese Verschiebung bedeutet, dass der Indikator bei 1 Stunden Chart um 1 Stunde nach Rechts verschoben ist.
Hier das Beispiel:
Linear Regression (14,1)

und Linear Regression (14,0)


Meine Frage, weiß jemannd was man im Quellcode ändern muß um den Chart um 1 Stunde zu verschieben? Und selbstverständlich so zu verschieben, dass nicht nur das Indikatorenbild verschoben wird, sondern auch die Indikatorenwerte die man dann für das Handeln ausliest.
Hier der Quellcode für die Linear Regression ohne Verschiebung:

//+------------------------------------------------------------------+
//| Linear Regression Line.mq4 |
//+------------------------------------------------------------------+
#property copyright "MetaTrader 4"
#property link "http://metatrader.com"
//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Blue
#property indicator_width1 2
//---- input parameters
extern int LRLPeriod=21;
//---- buffers
double LRLBuffer[];

int shift=0;
int n=0;
double sumx=0, sumy=0, sumxy=0, sumx2=0, sumy2=0;
double m=0, yint=0, r=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,LRLBuffer);
IndicatorDigits(Digits);
if(LRLPeriod < 2) LRLPeriod = 2;
IndicatorShortName("Linear Regression Line ("+LRLPeriod+")");
SetIndexDrawBegin(0,LRLPeriod+2);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+4 );
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Linear Regression Line |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
if(counted_bars<0) counted_bars=0;
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;

for(int shift=limit-1; shift>=0; shift--)
{
sumx = 0;
sumy = 0;
sumxy = 0;
sumx2 = 0;
sumy2 = 0;
for(n = 0; n <= LRLPeriod-1; n++)
{
sumx = sumx + n;
sumy = sumy + Close[shift + n];
sumxy = sumxy + n * Close[shift + n];
sumx2 = sumx2 + n * n;
sumy2 = sumy2 + Close[shift + n] * Close[shift + n];
}
m=(LRLPeriod*sumxy-sumx*sumy)/(LRLPeriod*sumx2-sumx*sumx);
yint=(sumy+m*sumx)/LRLPeriod;
r=(LRLPeriod*sumxy-sumx*sumy)/MathSqrt((LRLPeriod*sumx2-sumx*sumx)*(LRLPeriod*sumy2-sumy*sumy));
LRLBuffer[shift]=yint-m*LRLPeriod;
}
return(0);
}
//+------------------------------------------------------------------+


Danke voraus
korak
Angehängte Grafiken
Dateityp: jpg nr1.jpg (45,4 KB, 8x aufgerufen)
Dateityp: jpg nr2.jpg (43,9 KB, 6x aufgerufen)