Autor |
Beitrag |
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
28.11.2001, 11:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
25.11.2001, 12:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
24.11.2001, 17:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
Es ist sicherlich eine gute Idee hier Ideen für Systeme zu posten und darüber zu diskutieren. Jedoch gehört zu einem System nicht nur das Entrysignal sondern (was eigentlich viel wichtiger ist) der Exit (und evtl. trailing stops, Moneymanagement stops, BE-Stops, Positionsizing ....)
|
|
23.11.2001, 11:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
Vermutlich sind 1565 die Anzahl der Ticks und nicht das gehandelte Volumen. Du kannst aber wählen, ob das Volumen als Tick oder gehandeltes Volumen dargestellt wird. Format Symbol - Settings rechts unter Volume ist wälhst du den option button "Trade volume"
|
|
15.11.2001, 09:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
Indikator: DivergenceFinder; ruft Funktionen: RB_CheckPeak, RB_CheckValley.
Indikator {***************************************} InputSC(slowkclassic(5, 3)),Mingap(3),MaxOfset(3),OscDif(.01),PrcDif(1),MinPeak(30), MinPeak2(30),MaxVal(70),MaxVal2(70),MaxNum(10);
ArrayscH[51](0),OscHBar[51](0),OscL[51](0),OscLBar[51](0);
VarscVal(0),LastH(0),LastL(0),Loop(0),FoundH(0),FoundL(0), StrtBar(0),EndBar(0),StrtVal(0),IncVal(0),NewPeak(false),NewVal(false), LastPeak(0),LastVal(0),EndVal(0); {MaxOfset - Number of bars away (in price chart) from corresponding peak or valley in Stochastic that is allowable and still considered valid Zero - tight, will produce fewest trades, the greater the number, the more trades that will be generated. MinGap - Minimun number of bars needed between peaks or valleys. OscDif - Minimum difference needed between points of Stochastic in order to be greater or less than. PrcDif - Minimun number of points between highs or lows of bars in order to be greater or less than. MinPeak - The minimum value needed for the first peak (of the stochastic) MaxVal - The Maximum value allowed for the first valley (of the stochastic)}
{Record current values of oscilator in OscH and OschL arrays. If we come to a peak or valley, start a new entry. Set up as a stack, most recent entry is element 1, older entries have higher numbers. }
OscVal = OSC; NewPeak=false; NewVal=false;
{look for peak in Stochastic}
If barnumber > 2 and LastH > 0 then begin if OscH[1]-OscVal>=OscDif and OscH[1] - OscVal[2]>=OscDif then begin {found new peak} LastH = Minlist(LastH+1,MaxNum); NewPeak = true; for loop = LastH downto 2 begin OscH[Loop] = OscH[Loop-1]; OscHBar[Loop] = OscHBar[Loop-1]; end; end; end ELSE LastH = 1; {first entry}
{Capture and *save values}
OscH[1] = OscVal; OscHBar[1] = BarNumber;
{Look for valley in Stochastic}
if barnumber>2 and LastL > 0 then begin if NewPeak = false then begin if OscVal-OscL[1]>=OscDif and OscVal[2]-OscL[1]>=OscDif then begin {Found new valley} LastL = minlist(LastL+1,MaxNum); NewVal = true; For Loop = LastL downto 2 begin OscL[Loop] = OscL[Loop-1]; OscLBar[Loop] = OscLBar[Loop-1]; end; end; end; end ELSE LastL = 1; {first entry}
{Capture and save values} OscL[1] = OscVal; OscLBar[1] = BarNumber;
{Look for the first part of a sell divergence, the second stochastic peak is Lower than the previous stochastic peak by one full % point. Also, the first peak has to be >= the MinPeak value. Take the first occurance}
if NewPeak or barnumber-OscHBar[2] <= MaxOfset then begin FoundH = 0; for loop = 3 to lastH begin if FoundH=0 and (OscH[loop]-OscH[2]>=1) and OscHBar[2]-OscHBar[loop]>=MinGap and OscH[loop]>=MinPeak and OscH[2]>=MinPeak2 then FoundH = Loop; { negative slope} end;
if foundH > 0 then begin {FOUND FIRST PART OF SELL DIVERGENCE, CHECK PRICE BARS FOR MATCH} StrtBar = RB_CheckPeak(OscHBar[FoundH],MaxOfset,PrcDif); EndBar = RB_CheckPeak(OscHBar[2],MaxOfset,PrcDif); StrtVal = high[StrtBar]; EndVal = high[EndBar]; If StrtBar > 0 and EndBar > 0 and EndVal >= StrtVal and StrtBar - EndBar >= MinGap then begin {Found match, have true Divergence}
{ if OscHBar[2]<>LastPeak then } if EndVal = StrtVal then IncVal = 0 else IncVal = (EndVal-StrtVal)/(StrtBar-EndBar); value2 = 0; for value1 = StrtBar downto EndBar begin Plot1[value1](StrtVal+value2*IncVal,"SDIVERG"); value2 = value2 + 1; end;
{ LastPeak = OscHBar[2]; }
end; end; end;
{Look for the first part of a buy divergence, the second stochastic valley is Higher than the previous stochastic Valley by one full % point. Also, the first valley has to be<=the MaxVal value.Take the first occurance}
if NewVal or barnumber-OscLBar[2] <= MaxOfset then begin FoundL = 0; for loop = 3 to lastL begin if FoundL=0 and (OscL[2]-OscL[Loop]>=1) and OscLbar[2]-OscLBar[loop]>=MinGap and OscL[loop] <= MaxVal and OscL[2]<=MaxVal2 then FoundL = Loop; { positive slope} end; if foundL > 0 then begin {FOUND FIRST PART OF BUY DIVERGENCE, CHECK PRICE BARS FOR MATCH}
EndBar = RB_CheckValley(OscLBar[2],MaxOfset,PrcDif); StrtBar = RB_CheckValley(OscLBar[FoundL],MaxOfset,PrcDif); StrtVal = low[StrtBar]; EndVal = low[EndBar]; if StrtBar>0 and EndBar>0 and EndVal <= StrtVal and StrtBar - EndBar >= MinGap then begin {Found match, have true Divergence} { if OscLBar[2]<>LastVal then }
if EndVal = StrtVal then IncVal = 0 else IncVal = (StrtVal-EndVal)/(StrtBar-EndBar); value2 = 0; for value1 = StrtBar downto EndBar begin Plot2[value1](StrtVal-value2*IncVal,"BDIVERG"); value2 = value2 +1; end; { LastVal = OscLBar[2]; }
end; end; end;
{**************************************}
Funktion: RB_Checkpeak
{****************************************}
InputskNmbr(NumericSimple),MaxOfset(NumericSimple), PrcDif(numericsimple); Vars:Last(0),First(0),TstVal(0),PrevVal(0),NextVal(0);
{PkNmbr - Barnumber of peak in stochastic that you are checking against MaxOfset - Number of bars away from this PkNmbr that is allowable and still considered a valid match PrcDif - Minimun number of points between highs or lows of bars in order to be greater or less than.
Will return the offset bar number (bars back from current bar) of the peak bar or will return a Zero if there is no matching peak}
First = Barnumber - Minlist(PkNmbr+MaxOfset,Barnumber-1); Last = Barnumber - Maxlist(PkNmbr-MaxOfset,2);
RB_CheckPeak = 0; if First<=maxbarsback and Last<=maxbarsback then begin For Value1 = First to Last begin TstVal = High[value1]; PrevVal = High[Value1+1]; NextVal = High[Value1-1];
{ {***Check For Equal Bars***} value2 = 2; while TstVal = PrevVal begin PrevVal = High[value1+value2]; value2 = value2+1; end; value2 = 2; while TstVal = NextVal and value1-value2>= 0 begin NextVal = High[value1-value2]; value2=value2+1; end; }
if TstVal-NextVal>=PrcDif points and TstVal-PrevVal>=PrcDif points then RB_CheckPeak =value1; end; end;
{**************************************}
Funktion: RB_Checkvalley {***************************************}
InputskNmbr(NumericSimple),MaxOfset(NumericSimple), PrcDif(numericsimple); Vars:Last(0),First(0),TstVal(0),NextVal(0),PrevVal(0);
{PkNmbr - Barnumber of peak in stochastic that you are checking against MaxOfset - Number of bars away from this PkNmbr that is allowable and still considered a valid match PrcDif - Minimun number of points between highs or lows of bars in order to be greater or less than.
Will return the offset bar number (bars back from current bar) of the valley bar or will return a Zero if there is no matching valley}
First = Barnumber - Minlist(PkNmbr+MaxOfset,Barnumber-1); Last = Barnumber - Maxlist(PkNmbr-MaxOfset,2); RB_CheckValley = 0;
if First<=maxbarsback and Last<=maxbarsback then begin For Value1 = First to Last begin TstVal = Low[value1]; PrevVal = Low[Value1+1]; NextVal = Low[Value1-1];
{ {***Check For Equal Bars***} value2 = 2; while TstVal = PrevVal begin PrevVal = Low[value1+value2]; value2 = value2+1; end; value2 = 2; while TstVal = NextVal and value1-value2>= 0 begin NextVal = Low[value1-value2]; value2=value2+1; end; }
if NextVal-TstVal>=PrcDif points and PrevVal-TstVal>=PrcDif points then RB_CheckValley = value1; end; end;
{***************************************}
grüsse
micha
|
|
09.11.2001, 11:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
Bei der Berechnung des Optionspreises gibt es mehrere wichtige Elemente:
a) Kurs des Underlying b) Strike c) Restlaufzeit d) risikoloser Zinssatz e) Volatiliät
bei e) nimmst du aber deine eigene geschätzte Volatilität, da die historische Vola von der tatsächlich im Markt handelbaren Vola (=implizite Vola) stark abweichen kann !! Die hist. vola für als eigene Volameinung zu nehmen kann daher weit neben dem Markt liegen. Besser ist die implizite Vola auf verschiedene Serien unter Berücksichtigung des Volatility-Smile.
mehr dazu: Optionen und Futures verstehen -dtv Taschenbuch
|
|
25.10.2001, 17:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
18.10.2001, 17:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
18.10.2001, 15:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
16.10.2001, 14:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
18.09.2001, 22:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
07.09.2001, 11:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
hi,
{*************************} Inputs: Price((H+L)/2); Vars: InPhase(0), Quadrature(0), Phase(0), DeltaPhase(0), count(0), InstPeriod(0), Period(0), DCPhase(0), RealPart(0), ImagPart(0);
If CurrentBar > 5 then begin
{Compute InPhase and Quadrature components} Value1 = Price - Price[6]; Value2 = Value1[3]; Value3 = .75*(Value1 - Value1[6]) + .25*(Value1[2] - Value1[4]); Inphase = .33*Value2 + .67*InPhase[1]; Quadrature = .2*Value3 + .8*Quadrature[1];
{Use ArcTangent to compute the current phase} If AbsValue(InPhase +InPhase[1]) > 0 then Phase = ArcTangent(AbsValue((Quadrature+Quadrature[1]) / (InPhase+InPhase[1])));
{Resolve the ArcTangent ambiguity} If InPhase < 0 and Quadrature > 0 then Phase = 180 - Phase; If InPhase < 0 and Quadrature < 0 then Phase = 180 + Phase; If InPhase > 0 and Quadrature < 0 then Phase = 360 - Phase;
{Compute a differential phase, resolve phase wraparound, and limit delta phase errors} DeltaPhase = Phase[1] - Phase; If Phase[1] < 90 and Phase > 270 then DeltaPhase = 360 + Phase[1] - Phase; If DeltaPhase < 1 then DeltaPhase = 1; If DeltaPhase > 60 then Deltaphase = 60;
{Sum DeltaPhases to reach 360 degrees. The sum is the instantaneous period.} InstPeriod = 0; Value4 = 0; For count = 0 to 40 begin Value4 = Value4 + DeltaPhase[count]; If Value4 > 360 and InstPeriod = 0 then begin InstPeriod = count; end; end;
{Resolve Instantaneous Period errors and smooth} If InstPeriod = 0 then InstPeriod = InstPeriod[1]; Value5 = .25*InstPeriod + .75*Value5[1];
{Compute Dominant Cycle Phase, Sine of the Phase Angle, and Leadsine} Period = IntPortion(Value5); RealPart = 0; ImagPart = 0; For count = 0 To Period - 1 begin RealPart = RealPart + Sine(360 * count / Period) * (Price[count]); ImagPart = ImagPart + Cosine(360 * count / Period) * (Price[count]); end; If AbsValue(ImagPart) > 0.001 then DCPhase = Arctangent(RealPart / ImagPart); If AbsValue(ImagPart) <= 0.001 then DCPhase = 90 * Sign(RealPart); DCPhase = DCPhase + 90; If ImagPart < 0 then DCPhase = DCPhase + 180;
Plot1(Sine(DCPhase), "Sine"); Plot2(Sine(DCPhase + 45), "LeadSine");
end; {***************************}
grüsse
micha
|
|
05.09.2001, 13:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
22.08.2001, 13:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
09.08.2001, 17:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
08.08.2001, 10:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
08.08.2001, 09:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
|
03.08.2001, 09:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
da ist was durcheinander gegangen. nochmal: {*************************************} if dayofweek(date)=5 and csell c; {***************************************}
|
|
01.08.2001, 14:10 |
|
_Michael
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61
|
|
ich wollte den code posten, aber das posting erscheint nicht so, wie ich es eintippe. ich geb s auf.
micha
|
|
01.08.2001, 14:10 |
|