DBS-MARCH

DBS-MARCH

Typ : Signal Name : DBS-March

Inputs: Ceil(60), Flr(20),
{Additional inputs}
TStop1(0), StopB1(999), StopV1(0),
TStop2(0), StopB2(999), StopV2(0),
TAdd3(0), AddB3(999), TStop3(0), StopB3(999), Alpha3(0), Beta3(0),
TAdd4(0), AddV4(0), TStop4(0), StopV4(0), Alpha4(0), Beta4(0);

Var: X(0), Y(0), ZDelta(0), VarA(0), VarB(0), OldVarA(0), Pos(0), OpLoss(0), OpPro(0), BottDay(0), PeakDay(0),
{Additional variables}
Trigger(0), MaxReg(0);

Y = X;
X = Stddev(Close, 30);
ZDelta = (X — Y) / X;

If CurrentBar =1 then
VarA = 20;

OldVarA = VarA;
VarA = OldVarA * (1 + ZDelta);
VarA = MaxList(VarA, Flr);
VarA = MinList(VarA, Ceil);
VarB = VarA * 0.5;

Buy («Go Long») tomorrow at Highest(High, VarA) Stop;
Sell («Go Short») tomorrow at Lowest(Low, VarA) Stop;
ExitLong («Exit Long») tomorrow at Lowest(Low, VarB) Stop;
ExitShort («Exit Short») tomorrow at Highest(High, VarB) Stop;

{Additional trading}

If BigPointValue <> 0 and EntryPrice <> 0 Then Begin
Trigger = (PositionProfit/BigPointValue) * 100 / EntryPrice;
MaxReg = (MaxPositionProfit/BigPointValue) * 100 / EntryPrice;
End;

If TStop1 = 1 Then Begin
If BarsSinceEntry >= StopB1 and Trigger < StopV1 Then Begin
If MarketPosition = 1 Then
ExitLong («Stop Long 1») tomorrow at Open Stop;
If MarketPosition = -1 Then
ExitShort («Stop Short 1») tomorrow at Open Stop;
End;
End;

If TStop2 = 1 Then Begin
If BarsSinceEntry >= StopB2 and Trigger < StopV2 Then Begin
If MarketPosition = 1 Then
ExitLong («Stop Long 2») tomorrow at Open Stop;
If MarketPosition = -1 Then
ExitShort («Stop Short 2») tomorrow at Open Stop;
End;
End;

If TAdd3 = 1 Then Begin
If BarsSinceEntry >= AddB3 and
Trigger Crosses Over (Alpha3 + Beta3 * BarsSinceEntry) Then Begin
If MarketPosition = 1 Then
Buy («Add Long 3») tomorrow at Open Stop;
If MarketPosition = -1 Then
Sell («Add Short 3») tomorrow at Open Stop;
End;
End;

If TStop3 = 1 Then Begin
If BarsSinceEntry >= StopB3 and
Trigger Crosses Under (Alpha3 + Beta3 * BarsSinceEntry) Then Begin
If MarketPosition = 1 Then
ExitLong («Stop Long 3») tomorrow at Open Stop;
If MarketPosition = -1 Then
ExitShort («Stop Short 3») tomorrow at Open Stop;
End;
End;

If TAdd4 = 1 Then Begin
If MaxReg >= AddV4 and
Trigger Crosses Over (Alpha4 + Beta4 * MaxReg) Then Begin
If MarketPosition = 1 Then
Buy («Add Long 4») tomorrow at Open Stop;
If MarketPosition = -1 Then
Sell («Add Short 4») tomorrow at Open Stop;
End;
End;

If TStop4 = 1 Then Begin
If MaxReg >= StopV4 and
Trigger Crosses Under (Alpha4 + Beta4 * MaxReg) Then Begin
If MarketPosition = 1 Then
ExitLong («Stop Long 4») tomorrow at Open Stop;
If MarketPosition = -1 Then
ExitShort («Stop Short 4») tomorrow at Open Stop;
End;
End;

{End additional trading}

Pos = MarketPosition;
OpLoss = MaxPositionLoss;
OpPro = MaxPositionProfit;

If OpLoss < OpLoss[1] And Pos <> 0 Then
BottDay = BarsSinceEntry;

If OpPro > OpPro[1] And Pos <> 0 Then
PeakDay = BarsSinceEntry;

{Percentage export}

If CurrentBar = 1 Then
Print(File(«c:\Exam.txt»),»EntryDate»,»,»,»EntryPrice»,»,»,
«MarketPosition»,»,»,»MaxPositionLoss»,»,»,»BottomDay»,»,»,
«MaxPositionProfit»,»,»,»PeakDay»,»,»,»PositionProfit»,»,»,»LengthOfTrade»);

If Pos <> Pos[1] And Pos[1] <> 0 Then
Print(File(«c:\Exam.txt»),EntryDate(1),»,»,EntryPrice(1),»,»,
MarketPosition(1),»,»,(MaxPositionLoss(1)/BigPointValue)*100/EntryPrice(1),
«,»,BottDay,»,»,(MaxPositionProfit(1)/BigPointValue)*100/EntryPrice(1),
«,»,PeakDay,»,»,(PositionProfit(1)/BigPointValue)*100/EntryPrice(1),»,»,
BarsSinceEntry(1));

 

DBS-MARCH

Николай Солабуто
Оцените автора
Николай Солабуто
Добавить комментарий