Professional Documents
Culture Documents
html
alpha
f(ts,para) = equity
f ts para
equity f f
equity
Matlab
Matlab Matlab
MCTBMT4 Matlab 7
Matlab
Matlab C
Matlab
2.- Matlab
http://www.matlabsky.com/thread-28490-1-1.html
1
IFCU
1
2012 6 1 1.5 IF
0.35%% 0.35%%*1.5=0.525%%
IF 1.5 slip 1 slip
IF 1.5
IFCU
1
IF
3. BackTesting - Matlab
http://www.matlabsky.com/thread-28573-1-1.html
<- Matlab > FRB IFCUAL
FRB IFCUAL
FRB
BackTesting
ABCD T
Ti *
K ABCD Tk Tk
Tk K * K
1-2slip
5-7 BP
PS
1.5-3
Bar Bar
Robust Statistics
NB
K matlab candle K
matlab candle K K
1. %% K Matlab Demo
2. % by LiYang/faruto
3. % Email:farutoliyang@gmail.com
4. % 2012/8/4
5. scrsz = get(0,'ScreenSize');
6. figure('Position',[1 1 scrsz(3)*4/5 scrsz(4)]);
7.
8. subplot(3,1,[1 2]);
9. OHLC = F(:,3:6);
10. cndlV2(OHLC,0,'r','b','k');
11. xlim([1,length( OHLC )]);
12.
13.
14.
XTick = [];
15.
XTickLabel = [];
16.
17.
18.
str = [num2str(F(1,1)),'-',num2str(F(1,2))];
19.
XTickLabel{numel(XTickLabel)+1, 1} = str;
20.
21.
22.
if ~isempty(ind)
23.
24.
25.
XTickLabel{numel(XTickLabel)+1, 1} = str;
26.
end
27.
28.
29.
if ~isempty(ind)
30.
31.
32.
XTickLabel{numel(XTickLabel)+1, 1} = str;
33.
end
34.
35.
36.
if ~isempty(ind)
37.
38.
39.
XTickLabel{numel(XTickLabel)+1, 1} = str;
40.
end
41.
42.
ind = length(F(:,1));
43.
44.
45.
XTickLabel{numel(XTickLabel)+1, 1} = str;
46.
47.
set(gca,'XTick', XTick);
48.
set(gca,'XTickLabel', XTickLabel);
49.
50.
51. title('K Matlab Demo', 'FontWeight','Bold', 'FontSize', 15);
52.
53. subplot(313);
54. bar( F(:,7) );
55. xlim([1,length( OHLC )]);
set(gca,'XTick', XTick);
59.
set(gca,'XTickLabel', XTickLabel);
60.
K K
1. function cndlV2(varargin)
2. % See if we have [OHLC] or seperate vectors and retrieve our
3. % required variables (Feel free to make this code more pretty ;-)
4. isMat = size(varargin{1},2);
5. indexShift = 0;
6. useDate = 0;
7.
8. if isMat == 4,
9.
O = varargin{1}(:,1);
10.
H = varargin{1}(:,2);
11.
L = varargin{1}(:,3);
12.
C = varargin{1}(:,4);
13. else
14.
O = varargin{1};
15.
H = varargin{2};
16.
L = varargin{3};
17.
C = varargin{4};
18.
indexShift = 3;
19. end
20. if nargin+isMat < 7,
21.
colorDown = 'k';
22.
colorUp = 'w';
23.
colorLine = 'k';
24. else
25.
colorUp = varargin{3+indexShift};
26.
colorDown = varargin{4+indexShift};
27.
colorLine = varargin{5+indexShift};
28. end
29. if nargin+isMat < 6,
30.
date = (1:length(O))';
31. else
32.
if varargin{2+indexShift} ~= 0
33.
date = varargin{2+indexShift};
34.
useDate = 1;
35.
else
36.
date = (1:length(O))';
37.
end
38. end
39.
40. % w = Width of body, change multiplier to draw body thicker or thinner
41. % the 'min' ensures no errors on weekends ('time gap Fri. Mon.' > wanted
42. % spacing)
43. w=.3*min([(date(2)-date(1)) (date(3)-date(2))]);
44. %%%%%%%%%%%Find up and down days%%%%%%%%%%%%%%%%%%%
45. d=C-O;
46. l=length(d);
47. hold on
48. %%%%%%%%draw line from Low to High%%%%%%%%%%%%%%%%%
49. for i=1:l
50.
51. end
52. %%%%%%%%%%draw white (or user defined) body (down day)%%%%%%%%%%%%%%%%%
53. n=find(d<0);
54. for i=1:length(n)
55.
56.
57.
fill(x,y,colorDown)
58. end
59. %%%%%%%%%%draw black (or user defined) body(up day)%%%%%%%%%%%%%%%%%%%
60. n=find(d>=0);
61. for i=1:length(n)
62.
63.
64.
fill(x,y,colorUp)
65. end
66.
67. if (nargin+isMat > 5) && useDate,
68. %
69.
tlabel('x');
dynamicDateTicks
70. end
71.
72. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
73. hold off
1MA
2MACD
MACD
1S L EMA1EMA2
2 DIF=EMA1-EMA2
3 DIF N DEA
4 MACD=2*(DIF-DEA)
3DMA
DMA
1S L MA1MA2
2 DMA=MA1-MA2
3 DMA M AMA
4TRIX
TRIX
1 N EMA
2 EMA N TR
3 TRIX=(TR- TR)/ TR*100
4 TRIX M MATRIX
Demo
1. %% Matlab
2. % by LiYang/faruto
3. % Email:farutoliyang@gmail.com
4. % 2012/8/4
5. %% MA
6. S = 5;
7. L = 20;
8. [SMA, LMA] = movavg(Data, S, L);
9. SMA(1:S-1) = NaN;
10. LMA(1:L-1) = NaN;
11.
12. scrsz = get(0,'ScreenSize');
13. figure('Position',[1 1 scrsz(3)*4/5 scrsz(4)]);
14.
15. subplot(221);
16. OHLC = F(:,3:6);
17. cndlV2(OHLC,0,'r','b','k');
18. xlim([1,length( OHLC )]);
19.
set(gca,'XTick', XTick);
20.
set(gca,'XTickLabel', XTickLabel);
21.
22.
23. hold on;
24. H1 = plot(SMA,'g','LineWidth',1.5);
25. H2 = plot(LMA,'r','LineWidth',1.5);
26. title(' SMA()Matlab Demo',
'FontWeight','Bold', 'FontSize', 15);
27. M = {'MA5';'MA20'};
28. legend([H1,H2],M);
29.
30. %% MACD
31. S = 12;
32. L = 26;
33. EMA1 = EMA(Data, S);
34. EMA2 = EMA(Data, L);
35. DIFF = EMA1-EMA2;
36. M = 10;
37. DEA = EMA(DIFF, M);
38. MACD = 2*(DIFF-DEA);
39.
40. subplot(222);
41. MACD_p = MACD;
42. MACD_n = MACD;
43. MACD_p(MACD_p<0) = 0;
44. MACD_n(MACD_n>0) = 0;
45. bar(MACD_p,'r','EdgeColor','r');
46. hold on;
47. bar(MACD_n,'b','EdgeColor','b');
48. plot(DIFF,'k','LineWidth',1.5);
49.
50. plot(DEA,'g','LineWidth',1.5);
51.
52. xlim([1,length( OHLC )]);
53.
set(gca,'XTick', XTick);
54.
set(gca,'XTickLabel', XTickLabel);
55.
set(gca,'XTick', XTick);
78.
set(gca,'XTickLabel', XTickLabel);
79.
80. %% TRIX
81. N = 2;
82. ema = EMA(Data, N);
83. M = 20;
84. TR = EMA( EMA(ema,N) , N);
85. TRIX = ( TR(2:end)-TR(1:end-1) )./TR(1:end-1)*100;
86. TRIX = [NaN; TRIX];
87. MATRIX = movavg(TRIX, M, M);
88.
89. subplot(224);
90.
91. hold on;
92. plot(TRIX,'k','LineWidth',1.5);
93. plot(MATRIX,'r','LineWidth',1.5);
94. title(' TRIX()Matlab Demo',
'FontWeight','Bold', 'FontSize', 15);
95. legend('TRIX','MATRIX');
96. xlim([1,length( OHLC )]);
97.
set(gca,'XTick', XTick);
98.
set(gca,'XTickLabel', XTickLabel);
99.
MatlabTrader.m
MatlabTrader.fig
======================================================
MatlabTraderGUI
V1.0
Beta
by
LiYang
2011/12/30
Email:farutoliyang@gmail.com
MATLAB
MatlabTraderGUI
V1.0
Beta
1. Yahoo Finance
2.
3.
4. callback
5.
MACD
6.Mcode
faruto 2011
6.- Matlab
http://www.matlabsky.com/thread-33832-1-1.html
Tick
1MIN3MIN5MIN15MIN30MIN1hour
Tick 4MIN7MIN9MIN
7.- Matlab
http://www.matlabsky.com/thread-33833-1-1.html
## ## 12
34
34
IF
1
2012 6 1 1.5 IF
0.35%% 0.35%%*1.5=0.525%%
IF 1.5 slip 1 slip
IF 1.5