커뮤니티
수식 문의합니다.
2012-05-28 18:58:46
378
글번호 51379
[일]봉주기 매매를 하려 합니다.
조건1. 매수 매도 시점에 [주]봉주기 MACD오실레이터의 abs[절대값]이 직전값보다 작아야 한다.
{ 예 : 직전값 현재값
20 10 (True)
20 30 (False)
-20 -10 (True)
-20 -30 (False) }
주중에 주봉상 MACD값이 미완성이라도 주봉차트에서 보여지는 현재값을 이용하고 싶습니다.
조건2. 손익곡선에 채널을 그려 넣는데, 이 채널은 직전 30번의 매매 기간 동안
손익곡선의 최저점을 추적한다. (첨부그림 참조)
누적손익곡선이 최저점을 추적한 값 이상에서만 매매한다.
(시스템상 Plot명령을 실행할 수 없는건 알고있습니다.
시스템상 구현여부가 중요합니다.)
시스템식 :
if 조건1 and 조건2 then {
if crossup(ma(c,5),ma(c,20))
then buy();
if crossdown(ma(c,5),ma(c,20))
then sell();
}
감사합니다.
- 1. 사진.JPG (0.38 MB)
답변 1
예스스탁 예스스탁 답변
2012-05-29 12:05:21
안녕하세요
예스스탁입니다.
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);
value1 = NetProfit;
for cnt = var2 to var3{
if NetProfit[cnt] < value1 Then
value1 = NetProfit[cnt];
}
if var1 < var1[1] and NetProfit > value1 then {
if crossup(ma(c,5),ma(c,20))
then buy();
if crossdown(ma(c,5),ma(c,20))
then sell();
}
즐거운 하루되세요
> 으쌰 님이 쓴 글입니다.
> 제목 : 수식 문의합니다.
> [일]봉주기 매매를 하려 합니다.
조건1. 매수 매도 시점에 [주]봉주기 MACD오실레이터의 abs[절대값]이 직전값보다 작아야 한다.
{ 예 : 직전값 현재값
20 10 (True)
20 30 (False)
-20 -10 (True)
-20 -30 (False) }
주중에 주봉상 MACD값이 미완성이라도 주봉차트에서 보여지는 현재값을 이용하고 싶습니다.
조건2. 손익곡선에 채널을 그려 넣는데, 이 채널은 직전 30번의 매매 기간 동안
손익곡선의 최저점을 추적한다. (첨부그림 참조)
누적손익곡선이 최저점을 추적한 값 이상에서만 매매한다.
(시스템상 Plot명령을 실행할 수 없는건 알고있습니다.
시스템상 구현여부가 중요합니다.)
시스템식 :
if 조건1 and 조건2 then {
if crossup(ma(c,5),ma(c,20))
then buy();
if crossdown(ma(c,5),ma(c,20))
then sell();
}
감사합니다.
다음글
이전글