필터 지우기
필터 지우기

Backtesting simple moving average trading strategy

조회 수: 7 (최근 30일)
Quantopic
Quantopic 2014년 9월 8일
댓글: Josh Perry 2015년 7월 18일
Hi everyone, I have to backtest a trading strategy based on the cross of 3 simple moving average of 4,9 and 18 periods. The script I wrote down is the foloowing:
% Construction of the 3 SMA for 4,9 and 18 periods.
SMA.sma4 = tsmovavg(EURUSD.price.pt1,'s',20,1);
SMA.sma9 = tsmovavg(EURUSD.price.pt1,'s',45,1);
SMA.sma18 = tsmovavg(EURUSD.price.pt1,'s',90,1);
% Construction of the buying/selling signals.
if SMA.sma4 >= SMA.sma9 && SMA.sma18 >= SMA.sma9;
SIGNALS.buy = 1;
else SIGNALS.buy = 0;
end
if SMA.sma4 <= SMA.sma9 && SMA.sma18 <= SMA.sma9; SIGNALS.sell = 1; else SIGNALS.sell = 0; end My problem consists on the fact that the SIGNALS.buy vector is always equal to 0 and I do not get signals for buying/selling assets.
Is there something wrong in the the script or the trading strategy does not work? Thanks for help.

채택된 답변

Roger Wohlwend
Roger Wohlwend 2014년 9월 9일
편집: Roger Wohlwend 2014년 9월 9일
Indeed, your code could be the reason that you don't get any buy signal. Try the following:
SIGNALS.buy = (SMA.sma4 >= SMA.sma9) & (SMA.sma18 >= SMA.sma9);
SIGNALS.sell = (SMA.sma4 <= SMA.sma9) & (SMA.sma18 <= SMA.sma9);
That should do it. If you still do not get any buy signal then you should check your trading strategy.
  댓글 수: 4
Quantopic
Quantopic 2014년 9월 10일
ok! it works! thanks a lot for help!
Josh Perry
Josh Perry 2015년 7월 18일
yes but how do you back test this???? I am so lost on the backtesting of something like this in matlab

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Transaction Cost Analysis에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by