PureBytes Links
Trading Reference Links
|
Why is the position not on the same bar closed?
It will be purchased and if the exit on the same day the position is
always open
//UmkehrstabTrading
//Grundinstellungen----------------------------------------------------------------------
SetFormulaName ("UmkehrstabTradingB"); // name für den backtest
//SetBarsRequired( 10000, 0 );
SetOption( "AccountMargin", 100 ); // Keine Margin
//SetOption( "ActivateStopsImmediately", True );
//SetOption( "AllowPositionShrinking", False );
//SetOption( "AllowSameBarExit", True );
//SetOption( "CommissionAmount", 1.00 );
//SetOption( "CommissionMode", 2 );
//SetOption( "FuturesMode", 1 );
SetOption( "InitialEquity", 10000 ); // Startkapital
//SetOption( "InterestRate", 0 );
SetOption( "MaxOpenPositions", 1000 ); // Maximale Offenen Positionen
SetOption( "MinPosValue", 0 ); // Minimaler Betrag
SetOption( "MinShares", 1 ); // Minimale Anzahl ?
//SetOption( "PriceBoundChecking", True );
//SetOption( "ReverseSignalForcesExit", False );
//SetOption( "UsePrevBarEquityForPosSizing", False );
SetTradeDelays( 0, 0, 0, 0 );
SetPositionSize( 1, spsShares ); // Menge die gekauft wird
RoundLotSize = 0; //Positionen sollen immer aus ganzzahligen Shares
bestehen(1,2,3,x)
//Positionsgröße-------------------------------------------------------------------------
Risiko = 15 ; //risiko auf das depot
RisikoimWert = Ref (ATR(1),-1) ; // risiko im wert
PositionSize = ( Risiko / RisikoimWert) * BuyPrice;
//Fremde
Programme------------------------------------------------------------------------
#include "Formulas\Systems\stochstoch9010.afl"
//VAriabelen------------------------------------------------------------------------------
stFaktor = 1;
//stFaktor = Optimize( "StoppFaktor",1, 0.5 , 2.5, 0.1 );
tpFaktor = Optimize( "TakeProfitFaktor", 2, 0.5 , 3, 0.1 );
slARRAY = Null; // für die Darstellung im Chart
tpARRAY = Null; // für die Darstellung im Chart
StopLos = 0;
TakeProfit = 0;
PeriodeEMA = 12 ;
xBars = 15; // Tage nach denen verkauft wird
ATR10 = ATR(10);
//AllgemeineAbfragen---------------------------------------------------------------------
//Abfage auf dojis
Korper = abs( O - C);
Kerze = H - L ;
Doji = Korper / Kerze < 0.10 ; //Abfrage ob ein doji, 0.10 = 10%
Körper der Kerze
Plot( Doji,"Doji",colorBlue,styleBar);
// Abfrage der % veränderung = ATR10 / Close
Veränderung = ATR10 / C * 100 ;
Plot( Veränderung ,"Veränderung ",colorBlue,styleBar);
//Volumen Abfrage
Volumen = MA( V * C * 100, 5 ) > 500000 ;
// Bedingungen für
Long------------------------------------------------------------------
//Trend muss steigend sein.Abgefragt über steigende Hochs.Wenn neues
Hoch > letztes Hoch = 1, wenn neues Hoch < letztes Hoch = 0
steigend = Flip (Highest_Short_Stopp > Ref(Highest_Short_Stopp,-1) ,
Highest_Short_Stopp < Ref(Highest_Short_Stopp,-1)) ;
//Abstand letztes Swing-H – Entry > 1R
AbstandHoch = H + ATR(1) < Highest_Short_Stopp ;
//% verändreung kleiner 5%
GrosseBar = Veränderung < 3 ;
// EMA muss steigen und Close muss über EMA sein
EMALong = EMA(C,PeriodeEMA) > Ref(EMA(C,PeriodeEMA),-1) ; // Abfrage
ob EMA steigt
CloseuberEMA = C > EMA(C,PeriodeEMA) ; // Abfrage ob Close > EMA
CloseGesternuberEMA = Ref(C,-1) > Ref(EMA(C,PeriodeEMA),-1) ; //
Abfrage ob Gestern auch Close über EMA
// Abfrage ob vorletztes Bar fallend war
// Wenn es ein Doji ist wird das Bar davor genommen. Was wenn das auch
ein Doji ist?
Barfallend = IIf(Ref(Doji,-1), Ref(O,-2) > Ref(C,-2) , Ref(O,-1)
> Ref(C,-1) ) ;
// Abfrage ob heutiges Bar steigend
Kaufbar = C > O ;
// Hoch über Hoch von Gestern
// und Tief kleiner Hoch da mit Limit Order geordert wird und keinen
Gaps gekauft werden
Long = H > Ref(H,-1) AND L < Ref(H,-1);
//Kauf Auftrag
Long_C = Ref(steigend,-1) AND Ref(EMALong,-1) AND Ref(CloseuberEMA,-1)
AND Ref(Barfallend,-1) AND Ref(Kaufbar,-1) AND
Ref(CloseGesternuberEMA,-1)AND Ref(GrosseBar,-1) AND Volumen AND
Ref(AbstandHoch,-1) AND Long ;
Buy = Long_C ;
BuyPrice = Ref(H,-1) ;
//Verkauf
Long-----------------------------------------------------------------------------
//Sell = BarsSince(Buy) == xBars;
Sell = 0 ;
for( i = 1; i < BarCount; i++ )
{
//----------Aufruf nur am Anfang jedes neuen Signals, BuyPrise und
ATR() wird
festgelegt--------------------------------------------------------------
if( StopLos == 0 AND Buy[ i ] )
{
BuyPrice = Ref(H,-1) ;
xxx = Ref(ATR(1),-1); // xxx
ist kein ARRAY
StopLos = BuyPrice[i] - ( xxx[i] * stFaktor );
TakeProfit = BuyPrice[i] + ( xxx[i] * tpFaktor);
}
else Buy[ i ] = 0; // remove excess buy signals >> hat der
Autor eingefügt, warum jetzt, erstmal keine Ahnung
//----------AusstoppRegel-----------------------------------------------------------------
if( StopLos > 0 AND Low[ i ] < StopLos)
{
Sell[ i ] = 1;
SellPrice[ i ] = StopLos;
StopLos = 0;
TakeProfit =0;
}
//--------Zum Übergeben der ST und TP -Level für die Darstellung im
Chart-----------------
if (StopLos > 0 AND Low[ i ] > StopLos AND High[i] <
TakeProfit )
{
slARRAY[i] = StopLos;
tpARRAY[i] = TakeProfit;
}
//----------GewinnZielRegel---------------------------------------------------------------
if( TakeProfit > 0 AND High[i] > TakeProfit)
{
Sell[ i ] = 1;
SellPrice[ i ] = TakeProfit;
StopLos = 0;
TakeProfit =0;
}
}
PlotShapes(Buy*shapeUpArrow,colorGreen,0,Low);
PlotShapes(Sell*shapeDownArrow,colorRed,0,High);
// Plot( Close,"Price",colorBlack,styleBar);
Plot( slARRAY,"StopLevel", colorRed );
Plot( tpARRAY,"TakeProfitLevel", colorRed );
Buy = ExRem (Buy,Sell);
Sell = ExRem(Sell,Buy);
|
|