커뮤니티
수식 재문의 드립니다.
2012-05-30 07:49:40
280
글번호 51470
24719 번 게시글 참조해 주세요!
작성해 주신 수식을 적용해보니 매매신호가 한번도 나오질 않습니다.
조건1을 제외하고 조건2만 적용해봐도 마찬가지네요~
조건2부분의 수식부분을 재검토 부탁 드리겠습니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2012-05-30 10:44:27
안녕하세요
예스스탁입니다.
1.
수식이 이전 30개의 거래결과가 필요하므로
최초 진입부터 30번거래까지는 오실레이터 절대값 하락 조건만
추가해서 적용했습니다.
2.
현재 손익이 이전 30개의 최저 누적손익보다 작다면
매매가 중단되므로 더이상 거래가 없어
이후에 진입도 없도 없어 이에 따라 손익의 변화도 없게됩니다.
이에 대한 내용은 추가하셔야 합니다.
3.
Input : Period1(12), Period2(26), Period3(9);
Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0);
Var : macdVal(0), preMacdVal(0), macdSig(0),macdOsc(0),PreMacdOsc(0);
var : cnt(0);
if (dayofweek(date) <= DayOfWeek(date[1]) and sdate > sdate[1]) then {
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMacdVal = macdSig[1];
PreMacdOsc = macdOsc[1];
}
Ep1 = 2/(Period1+1);
EP2 = 2/(Period2+1);
EP3 = 2/(Period3+1);
JISU1 = C * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균
JISU2 = C * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균
macdVal = JISU1 - JISU2; //macd
macdSig = macdVal * Ep3 + PreMacdVal * (1-Ep3); //macd signal
macdOsc = macdval-macdsig;
var1 = abs(macdOsc);
var2 = BarsSinceExit(1);
var3 = BarsSinceEntry(30);
var4 = NetProfit;
value1 = var4[var2];
for cnt = var2 to var3{
if var4[cnt] < value1 Then
value1 = var4[cnt];
}
if TotalTrades >= 30 and var1 < var1[1] and NetProfit > value1 then {
if crossup(ma(c,5),ma(c,20))
then buy("bb");
if crossdown(ma(c,5),ma(c,20))
then sell("ss");
}
if TotalTrades < 30 and var1 < var1[1] then {
if crossup(ma(c,5),ma(c,20))
then buy("b");
if crossdown(ma(c,5),ma(c,20))
then sell("s");
}
즐거운 하루되세요
> 으쌰 님이 쓴 글입니다.
> 제목 : 수식 재문의 드립니다.
> 24719 번 게시글 참조해 주세요!
작성해 주신 수식을 적용해보니 매매신호가 한번도 나오질 않습니다.
조건1을 제외하고 조건2만 적용해봐도 마찬가지네요~
조건2부분의 수식부분을 재검토 부탁 드리겠습니다.
감사합니다.
다음글
이전글