#공통, 전략
[설명]
•
매수진입
단기이평이 장기이평을 상향돌파하면 일정기간 최고가를 구하고,
이 가격의 +X%에 도달하면 즉시 진입
•
매수포지션 청산
일정기간 최저가에 도달하면 즉시 청산
•
매도진입
단기이평이 장기이평을 하향이탈하면 일정기간 최저가를 구하고,
이 가격의 -X%에 도달하면 즉시 진입
•
매도포지션 청산
일정기간 최고가에 도달하면 즉시 청산
Input: FastLen(9), SlowLen(18),ChLen(12),TrailBar(8),TrailTick(10),ReBars(15);
var : FastMA(0), SlowMA(0);
var : LEntryPrice(0), SEntryPrice(0);
var : Lidx(Nan), Sidx(Nan);
// 이동평균 계산
FastMA = MA(C, FastLen);
SlowMA = MA(C, SlowLen);
// 골든크로스 발생 시(상향 교차)
If CrossUp(FastMA, SlowMA) Then
{
//매수진입가격 설정(최근8봉 최고가+10틱)
LEntryPrice = Highest(H, TrailBar)+TrailTick*PriceScale;
//인덱스 저장
Lidx = index;
}
// 최근 돌드 발생 후 12봉 이내이면
If MarketPosition <= 0 And index < Lidx + ChLen Then
{
//매수진입가격을 터치하면 즉시 매수진입
Buy("Cross Over Buy", atstop, LEntryPrice);
}
// 데드크로스 발생 시(하향 교차)
If CrossDown(FastMA, SlowMA) Then
{
//매도진입가격 설정(최근8봉 최저가-10틱)
SEntryPrice = Lowest(L, TrailBar)-TrailTick*PriceScale;
//인덱스 저장
Sidx = index;
}
// 최근 데드 발생 후 12봉 이내이면
If MarketPosition >= 0 And index < Sidx + ChLen Then
{
//매도진입가격을 터치하면 매도진입
Sell("Cross Under Sell", atstop, SEntryPrice);
}
//매수 포지션 보유 시 트레일 스탑: 최근 최저가로 청산
If MarketPosition == 1 Then
{
Lidx = Nan; // 기존 진입 인덱스 리셋
ExitLong("LongTStop", atstop, Lowest(L, TrailBar));
}
//매도 포지션 보유 시 트레일 스탑: 최근 최고가로 청산
If MarketPosition == -1 Then
{
Sidx = Nan; // 기존 진입 인덱스 리셋
ExitShort("ShortTStop", atstop, Highest(H, TrailBar));
}
//현재 무포지션이고 최근 매수포지션을 청산 후 일정 봉(ReBars) 이내이고
If MarketPosition == 0 And MarketPosition(1) == 1 And BarsSinceExit(1) < ReBars Then
{
//8봉 최고가를 터치하면 매수 재진입
Buy("Long ReEntry", atstop, Highest(H, TrailBar));
}
//현재 무포지션이고 최근 매도포지션을 청산 후 일정 봉(ReBars) 이내이고
If MarketPosition == 0 And MarketPosition(1) == -1 And BarsSinceExit(1) < ReBars Then
{
//8봉 최저가를 터치하면 매도 수재진입
Sell("Short ReEntry", atstop, Lowest(L, TrailBar));
}
JavaScript
복사
