커뮤니티
수식문의
2017-10-17 11:33:30
136
글번호 113409
안녕하세요. 문의 드립니다.
수익차트에 이동평균선을 적용해서, 수익곡선이 이동평균선 아래 있으면 거래를 중단하고, 이동평균 위로 올라가면 거래를 재개 하는 방법을 적용하려 합니다.
수식 부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2017-10-17 15:49:06
안녕하세요
예스스탁입니다.
아래내용은 구현해 드리지 못합니다.
"수익곡선이 이동평균선 아래 있으면 거래를 중단하고, 이동평균 위로 올라가면 거래를 재개 하는 방법"
거래가 중단되면 더이상 신호가 없으므로 손익도 갱신이 없습니다.
아래수식들은 총손익이 이평위일때만 진입합니다. 아래이면 그이후 진입을 하지 않습니다.
아마 수익곡선이 이평선 아래 있으면 거래를 중단하고
가상으로 거래된것 처럼 계산해서 이용하고자 하시는 내용인것으로 파악되는데
해당 내용은 식작성에 시간이 많이 걸리는 내용이라 저희가 작성해 드리지 못합니다.
또한 위와 같은 내용으로 가상으로 체크해서 구현한 내용은
실제 전일에는 발생하지 않은 신호가
오늘 차트를 여시면 전일봉에 신호가 발생해 있을수 있습니다.
차트는 항상 최대 만개봉만 뛰우는데 다음날 어제는 조회되었지만
오늘은 만개봉제한으로 과거일의 데이터가 잘려나가면서 총손익이 변하게 되어
이평과 위치가 변경될 여지가 많습니다.
이용에 참고하시기 바랍니다.
1.청산완료된 거래의 손익만 대상
input : P(20);
var : TP(0),cnt(0),sum(0),mav(0);
#총손익
TP = NetProfit;
#최근 P개 거래의 손익평균
if TotalTrades >= P then{
sum = 0;
for cnt = 1 to P{
sum = sum + PositionProfit(cnt);
}
mav = sum/P;
}
#총거래횟수가 P미만이거나
#P이상이면 총손익이 이평 위일때만 진입
if TotalTrades < P or (TotalTrades >= P and TP > mav) Then{
진입수식
}
2 미청산 포지션 포함
input : P(20);
var : TT(0),TP(0),cnt(0),sum(0),mav(0);
#총손익
IF MarketPosition == 0 THEN
{
TP = NetProfit;
TT = TotalTrades;
}
Else
{
TP = NetProfit+PositionProfit;
TT = TotalTrades+1;
}
#최근 P개 거래의 손익평균
if TT >= P then
{
sum = 0;
if MarketPosition == 0 then
{
for cnt = 1 to P{
sum = sum + PositionProfit(cnt);
}
}
else
{
for cnt = 0 to P-1{
sum = sum + PositionProfit(cnt);
}
}
mav = sum/P;
}
#총거래횟수가 P미만이거나
#P이상이면 총손익이 이평 위일때만 진입
if TotalTrades < P or (TotalTrades >= P and TP > mav) Then
{
진입수식
}
즐거운 하루되세요
> ft 님이 쓴 글입니다.
> 제목 : 수식문의
> 안녕하세요. 문의 드립니다.
수익차트에 이동평균선을 적용해서, 수익곡선이 이동평균선 아래 있으면 거래를 중단하고, 이동평균 위로 올라가면 거래를 재개 하는 방법을 적용하려 합니다.
수식 부탁드립니다.
이전글