



'************************************************************************************
'PROGRAMME BACKTESTING
'************************************************************************************


'Superman
'wfsave "W:\RA\Gestion dynamique des devises\Modèle quantitatif\Backtesting\Backtesting\eviews\scenarios\backtesting_apres_scenariodebase.wf1"
'	wfopen "W:\RA\Gestion dynamique des devises\Modèle quantitatif\Backtesting\Backtesting\eviews\scenarios\backtesting_apres_scenariodebase.wf1"


delete signal_time
tic

string scenario = "L50"


IF %a ="L00" or  %a ="NN00"  or  %a ="PP00" or  %a ="QQ00" or  %a ="RR00" or  %a ="SS00" or  %a ="L25" or  %a ="NN25"  or  %a ="PP25"   or  %a ="QQ25" or  %a ="RR25" or  %a ="SS25"  or  %a ="L50" or  %a ="NN50"  or  %a = "PP50"   or  %a ="QQ50" or  %a ="RR50" or  %a ="SS50"   or  %a ="L75" or  %a ="NN75"  or  %a ="PP75"   or  %a ="QQ75" or  %a ="RR75" or  %a ="SS75" or %a ="P00" or %a ="P25" or %a ="P50" or %a ="P75" or %a ="Q00" or %a ="Q25" or %a ="Q50" or %a ="Q75" or %a ="S00" or %a ="S25" or %a ="S50" or %a ="S75" THEN string clist = "pourcent"
else string clist = "rel"
endif



%curlist = "CAD"
string list_eq = " MOD10"
string certain = "CN"


for %a {scenario}
for %c {clist}
for %u {curlist}
for %x {list_eq}
for %i {certain}
								

scalar s0 

Scalar a_100
Scalar a_125
Scalar a_130
Scalar a_140
Scalar a_150
Scalar a_175 
Scalar a_200



IF %a ="L00" or  %a ="NN00"  or  %a ="PP00" or  %a ="QQ00" or  %a ="RR00" or  %a ="SS00" or  %a ="L25" or  %a ="NN25"  or  %a ="PP25"   or  %a ="QQ25" or  %a ="RR25" or  %a ="SS25"  or  %a ="L50" or  %a ="NN50"  or  %a = "PP50"   or  %a ="QQ50" or  %a ="RR50" or  %a ="SS50"   or  %a ="L75" or  %a ="NN75"  or  %a ="PP75"   or  %a ="QQ75" or  %a ="RR75" or  %a ="SS75"  or %a ="P00" or %a ="P25" or %a ="P50" or %a ="P75" or %a ="Q00" or %a ="Q25" or %a ="Q50" or %a ="Q75" or %a ="S00" or %a ="S25" or %a ="S50" or %a ="S75" THEN %c = "pourcent"
endif



IF 		%a ="BB00" or %a ="CC00"   or %a ="DD00" or %a ="EE00" or %a ="FF00"	or %a ="B00"  THEN s0 = 0
else if %a ="BB25"  or %a ="CC25"  or %a ="DD25" or %a ="EE25" or %a ="FF25"  or %a ="B25"  THEN s0 = 0.25
else if %a ="BB50"  or %a ="CC50"   or %a ="DD50" or %a ="EE50" or %a ="FF50" or %a ="B50" THEN s0= 0.50
else if %a ="BB75"  or %a ="CC75"   or %a ="DD75" or %a ="EE75" or %a ="FF75"   or %a ="B75" THEN s0 = 0.75
else if %a ="BB_75"  or %a ="CC_75"   or %a ="DD_75" or %a ="EE_75" or %a ="FF_75"   THEN s0 = -0.75
else if %a ="BB_50"  or %a ="CC_50"   or %a ="DD_50" or %a ="EE_50" or %a ="FF_50"  THEN s0= -0.50
else if %a ="BB_25"  or %a ="CC_25"  or %a ="DD_25" or %a ="EE_25" or %a ="FF_25"   THEN s0 = -0.25

else if %a ="L00" or  %a ="NN00"  or  %a ="PP00" or  %a ="QQ00" or  %a ="RR00" or  %a ="SS00" THEN s0 = 0
else if %a ="L25" or  %a ="NN25"  or  %a ="PP25"   or  %a ="QQ25" or  %a ="RR25" or  %a ="SS25"  THEN s0 = 0.025
else if %a ="L50" or  %a ="NN50"  or  %a ="PP50"   or  %a ="QQ50" or  %a ="RR50" or  %a ="SS50"   THEN s0 = 0.05
else if %a ="L75" or  %a ="NN75"  or  %a ="PP75"   or  %a ="QQ75" or  %a ="RR75" or  %a ="SS75"   THEN s0 = 0.075


endif
endif
endif
endif	
endif		
endif	
endif
endif	
endif		
endif	
endif


'Condition pour les rentrée 

IF 		%a ="L00"	or %a ="L25"	or %a ="L50"	or %a ="L75"  THEN a_100 = 0.10
a_125 =0.15
a_130 =0.15
a_140 =0.15
a_150 =0.15
a_175 =0.20
a_200 =0.20

endif

 Scalar e_200 
 Scalar e_175 
 Scalar e_150 
 Scalar e_140 
 Scalar e_130
 Scalar e_125 
 Scalar e_100 




'Condition pour les expositions 100%

IF %a ="L00"	or %a ="L25"	or %a ="L50"	or %a ="L75" THEN e_200 =1
 e_175 =1
 e_150 =0.50
 e_140 =0.50
 e_130=0.50
 e_125 =0.50
 e_100 =0.25

endif		


!a_0 = 0
!a_25 = 0.25
!a_50 = 0.5
!a_75 = 0.75
!a_100 = a_100
!a_125 = a_125
!a_130 = a_130
!a_140 = a_140
!a_150 = a_150 
!a_175 = a_175
!a_200 = a_200

!e_100 =e_200
!e_75  =e_175
!e_50 = e_150
!e_40 = e_140
!e_30 = e_130
!e_25 =e_125
!e_00 =e_100


delete tmp
delete tmp2
delete casenum
delete threshold 


vector(17) tmp
tmp.fill NA, -!e_75, -!e_50, -!e_40, -!e_30, -!e_25, -!e_00, 0, NA, 0, !e_00, !e_25, !e_30, !e_40, !e_50, !e_75, NA
smpl all @all
mtos(tmp, tmp2,all)



%zsc = "zsc_" + %c + "_" + %u + "_" + %x + "_" + %i  'Create a shorter name for the series

genr casenum= @recode({%zsc} >= !a_200, 1,@recode({%zsc} >= !a_175 , 2,@recode({%zsc} >= !a_150, 3,@recode({%zsc} >= !a_140, 4,@recode({%zsc} >= !a_130, 5,@recode({%zsc} >= !a_125, 6,@recode({%zsc} >=  !a_100, 7,@recode({%zsc} >= s0 , 8,@recode({%zsc} <= -!a_200, 17,@recode({%zsc} <= -!a_175, 16,@recode({%zsc} <= -!a_150, 15,@recode({%zsc} <= -!a_140, 14,@recode({%zsc} <= -!a_130, 13,@recode({%zsc} <= -!a_125, 12,@recode({%zsc} <= -!a_100, 11,@recode({%zsc} <= -s0 , 10,@recode({%zsc} > -s0  and {%zsc} < s0 , 9,0)))))))))))))))))


genr threshold = tmp2(casenum- @obsid)

series signal_{%a}_{%c}_{%u}_{%x}_{%i} = 0


%sig = "signal_" + %a + "_" + %c + "_" + %u + "_" + %x + "_" + %i  ' Shorter name for signal

'{%sig1} = @recode(casenum = 1, -!e_100, @recode(casenum = 9, 0, @recode(casenum= 17, !e_100, @recode(@recode(casenum < 9, {%sig1} < threshold, {%sig1} > threshold) , {%sig1}(-1), threshold))))


{%sig} = @recode(casenum = 1, -!e_100, @recode(casenum = 9, 0, @recode(casenum= 17, !e_100,@recode(casenum <9,@recode({%sig}(-1) <threshold,{%sig}(-1) ,threshold) ,@recode({%sig}(-1) >threshold,{%sig}(-1) ,threshold)))))


next 
next	
next
next
next

scalar signal_time = @toc

'wfsave "W:\RA\Gestion dynamique des devises\Modèle quantitatif\Backtesting\Backtesting\eviews\scenarios\optimisation_signal.wf1"


