суббота, 24 марта 2012 г.

жизненный цикл стратегии , часть 2

В продолжение поста.
Обсуждение в комментариях надоумило сделать такой скрипт (для R)


Исходные данные хранятся в csv-файле, где по-порядку идут значение профита или лосса по каждому трейду (размерность не важна - в пунктах или деньгах, у меня в пунктах):
-0.0009
0.0374
-0.0071
-0.004
0.0206
0.0128
0.0011
0.0003
0.0025
0.0786

Код скрипта следующий:
pl<-scan("pl.csv")
n<-length(pl)
x<-c(0,length=n) # вектор отношения среднего профита к среднему лосю
y<-c(0,length=n) # вектор доли профитных сделок
qp<-0 # кол-во профитных трейдов
ql<-0 # кол-во лоссов
sp<-0 # напопленный профит
sl<-0 # накопленные лоссы
for(i in 1:n){
 if (pl[i]>0){
  qp<-qp+1
  sp<-sp+pl[i]}
 else{
  ql<-ql+1
  sl<-sl+pl[i]}
 y[i]=qp/i
 if(sl!=0 && qp!=0) x[i]=(sp*ql)/(abs(sl)*qp)  
}
i<-seq(5,n)
m<-ceiling(max(x[i]))
xs<-seq(0,m,.1)
ys<-1/(1+xs)
plot(xs,ys, type="l", col="red", lwd=2,
xlab="отношение среднего профита к среднему лосю",
ylab="частота профитов",
main="Динамика системы и кривая безубыточности")
grid()
lines(x[i],y[i],type="l", col="blue")
points(x[n],y[n],lwd=4, pch=3, bg="black")
text(x[n]+2,min(y[i])-.1,"+ - крайний по времени трейд") 

Удачи!

Комментариев нет:

Отправить комментарий