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]
|