Rank: Advanced Member
Groups: Registered, Registered Users Joined: 1/19/2005(UTC) Posts: 1,065 Location: Koh Pha-Ngan, Earth
Was thanked: 2 time(s) in 2 post(s)
|
MetaStock -> Tools -> Indicator Builder -> New
-> Copy and paste two formulae below.
[code:1:70de451e81]
===========================
Seasonal Profit % - May-Oct
===========================
---8<------------------------------------------
{ Seasonal Buy & Hold.
Long: May to Oct.
System Profit Long % - fixed trade size - v2.2
Basic code - Entry/Exit on Close of signal.
©Copyright 2005~2006 Jose Silva.
The grant of this license is for personal use
only - no resale or repackaging allowed.
All code remains the property of Jose Silva.
http://www.metastocktools.com }
{ User inputs }
start:=Input("Start trading at start of Nth month [1-12]",1,12,5);
end:=Input("End trading at end of Nth month [1-12]",1,12,10);
cost:=Input("Total Transaction costs (Brokerage + Slippage) %:",0,100,.2)/200;
plot:=Input("plot: [1]%Profit curve, [2]Trade signals",1,2,1);
{ Trade Long period }
trade:=((Month()>=start)-(Month()<=end))<>0;
trade:=If(start>end,trade,1-trade);
{ Entry Long }
entry:=trade;
{ Exit Long }
exit:=trade=0;
{ Trade Binary & clean Entry/Exit signals }
init:=Cum(IsDefined(entry+exit))=1;
flag:=ValueWhen(1,entry-exit<>0 OR init,entry);
entry:=flag*(Alert(flag=0,2)
OR entry*Cum(entry)=1);
exit:=(flag=0)*(Alert(flag,2)
OR exit*Cum(exit)=1);
{ Profit % curve }
EntryVal:=ValueWhen(1,entry,C*(1+cost));
Profit:=C*(1-cost)/EntryVal-1;
ProfitPer:=(flag*Profit+Cum(exit*Profit))*100;
{ Plot in own window below chart }
If(plot=1,ProfitPer,entry-exit)
---8<------------------------------------------
=============================
Seasonal Profit % - Nov-April
=============================
---8<------------------------------------------
{ Seasonal Buy & Hold.
Long: November to April.
System Profit Long % - fixed trade size - v2.2
Basic code - Entry/Exit on Close of signal.
©Copyright 2005~2006 Jose Silva.
The grant of this license is for personal use
only - no resale or repackaging allowed.
All code remains the property of Jose Silva.
http://www.metastocktools.com }
{ User inputs }
start:=Input("Start trading at start of Nth month [1-12]",1,12,11);
end:=Input("End trading at end of Nth month [1-12]",1,12,4);
cost:=Input("Total Transaction costs (Brokerage + Slippage) %:",0,100,.2)/200;
plot:=Input("plot: [1]%Profit curve, [2]Trade signals",1,2,1);
{ Trade Long period }
trade:=((Month()>=start)-(Month()<=end))<>0;
trade:=If(start>end,trade,1-trade);
{ Entry Long }
entry:=trade;
{ Exit Long }
exit:=trade=0;
{ Trade Binary & clean Entry/Exit signals }
init:=Cum(IsDefined(entry+exit))=1;
flag:=ValueWhen(1,entry-exit<>0 OR init,entry);
entry:=flag*(Alert(flag=0,2)
OR entry*Cum(entry)=1);
exit:=(flag=0)*(Alert(flag,2)
OR exit*Cum(exit)=1);
{ Profit % curve }
EntryVal:=ValueWhen(1,entry,C*(1+cost));
Profit:=C*(1-cost)/EntryVal-1;
ProfitPer:=(flag*Profit+Cum(exit*Profit))*100;
{ Plot in own window below chart }
If(plot=1,ProfitPer,entry-exit)
---8<------------------------------------------
[/code:1:70de451e81]
|