Search
Duplicate
📝

MovAvg Crossover

#공통, 전략
[설명]
매수진입 단기이평이 장기이평을 상향돌파하면 일정기간 최고가를 구하고, 이 가격의 +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
복사