아래는 재진입 수식입니다.
아래 고가갱신 수식으로는 너무 느린데요.
좀 더 빠른 고가갱신 수식을 요청드립니다. 틱봉차트에서는 한참 걸려서요.
*****************************************************************************
input:고가갱신수(1)
if MarketPosition == 0 and #현재 무포지션이고
EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고
MarketPosition(1) == 1 and #직전거래가 매수거래이고
countif(DayHigh(0) != DayHigh(0)[1],BarsSinceExit(1)) >= 고가갱신수 Then #청산이후 당일고가 갱신이 n회이상 있었으면
{
buy("b");
}
답변 1
예스스탁
예스스탁 답변
2024-02-08 17:12:07
안녕하세요
예스스탁입니다.
1
청산 후 경과봉수가 많으면 로드가 많이 걸리므로
countif함수 대신에 청산후 조건만족할 때마다 카운트 하는 내용으로 변경한 식입니다.
input:고가갱신수(1);
var : Hcnt(0);
#청산발생 초기값 0
if TotalTrades > TotalTrades[1] Then
{
Hcnt = 0;
}
#현재 무포지션이고 직전거래가 오늘 발생한 거래이고 직전거래가 매수거래이고
if MarketPosition == 0 and EntryDate(1) == sdate and MarketPosition(1) == 1 Then
{
#당일고가 갱신 카운트
if DayHigh(0) != DayHigh(0)[1] Then
{
Hcnt = Hcnt+1;
}
#지정한 횟수 이상이면
if Hcnt >= 고가갱신수 Then
Buy("b");
}
2
현재 봉완성기준으로 신호가 발생합니다.
현재봉 고가가 당일최고가보다 크면 횟수가 1씩 카운트 되는데
현재 봉완성시 지정한 횟수이면 종가에 진입하게 됩니다.
그러므로 if문조건에서는 청산이후 지정한 고가갱신수보다 1회 적게만족하고 있다면
다음봉에서 당일고가보다 큰 시세가 발생하면 즉시 진입하게 하시면 됩니다.
input:고가갱신수(1);
if MarketPosition == 0 and
EntryDate(1) == sdate and
MarketPosition(1) == 1 and
NextBarSdate == sDate and#다음날 첫봉진입 제한
countif(DayHigh(0) != DayHigh(0)[1],BarsSinceExit(1)) >= 고가갱신수-1 Then #지정한 갱신횟수보다 1회적게 충족되면
{
#다음봉에서 당일고가+1틱 이상 가격 발생하면 즉시 매수
buy("b",AtStop,DayHigh(0)+PriceScale*1);
}
즐거운 명절되세요
> 목마와숙녀 님이 쓴 글입니다.
> 제목 : 문의
> 아래는 재진입 수식입니다.
아래 고가갱신 수식으로는 너무 느린데요.
좀 더 빠른 고가갱신 수식을 요청드립니다. 틱봉차트에서는 한참 걸려서요.
*****************************************************************************
input:고가갱신수(1)
if MarketPosition == 0 and #현재 무포지션이고
EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고
MarketPosition(1) == 1 and #직전거래가 매수거래이고
countif(DayHigh(0) != DayHigh(0)[1],BarsSinceExit(1)) >= 고가갱신수 Then #청산이후 당일고가 갱신이 n회이상 있었으면
{
buy("b");
}