예스스탁
예스스탁 답변
2020-11-16 09:57:26
안녕하세요
예스스탁입니다.
Input : af(0.02), maxAF(0.2);
Input : shortPeriod(20), longPeriod(60);
Var : mav1(0),mav2(0),sarv(0),T(0);
mav1 = ma(c,shortPeriod);
mav2 = ma(c,longPeriod);
sarv = csar(af,maxAF);
If CrossUp(C,Sarv) Then
{
ExitShort("sx");
T = 1;
if mav1 >= mav2 Then
{
Buy("b1");
T = 2;
}
}
if T == 1 and CrossUp(C,mav1) Then
Buy("b2");
If CrossUp(C,Sarv) Then
{
ExitLong("bx");
T = -1;
if mav1 <= mav2 Then
{
Sell("s1");
T = -2;
}
}
if T == -1 and CrossDown(C,mav1) Then
Sell("s2");
즐거운 하루되세요
> 스터디 님이 쓴 글입니다.
> 제목 : 역배열/정배열이면 진입 지연
> 안녕하세요.
시스템을 작성하면서 어려움이 있어 도움을 요청드립니다.
1. 아래 로직을 시스템으로 작성하고 싶습니다.
1-1. 매수 진입
(1) 파라볼릭(0.02, 0.2) 지표에서 매수 신호가 발생하면 매수(buy)를 하는게 아니라,
파라볼릭(0.02, 0.2) 지표에서 매수 신호가 발생할 때 역배열(20봉 이평선 < 60 봉 이평선)이면,
주가의 종가가 20일 이평선을 상향 돌파할 때까지 기다렸다 20일 이평선을 상향 돌파하면 매수하라.
(2) 파라볼릭(0.02, 0.2) 지표에서 매수 신호가 발생할 때 정배열(20봉 이평선 >= 60 봉 이평선)이면,
매수하라.
1-2. 매수 청산
파라볼릭(0.02, 0.2) 지표에서 매도 신호가 발생하면 청산하라.
<매도 진입, 매도 청산: 위에 있는 매수 진입, 매수 청산과 반대 조건입니다>
1-3. 매도 진입
(1) 파라볼릭(0.02, 0.2) 지표에서 매도 신호가 발생하면 매도(sell)를 하는게 아니라,
파라볼릭(0.02, 0.2) 지표에서 매도 신호가 발생할 때 정배열(20봉 이평선 > 60 봉 이평선)이면,
주가의 종가가 20일 이평선을 하향 이탈할 때까지 기다렸다 20일 이평선을 하향 이탈하면 매도하라.
(2) 파라볼릭(0.02, 0.2) 지표에서 매도 신호가 발생할 때 역배열(20봉 이평선 <= 60 봉 이평선)이면,
매도하라.
1-4. 매도 청산
파라볼릭(0.02, 0.2) 지표에서 매수 신호가 발생하면 청산하라.
2. 주의 사항
위에서 역배열/정배열 여부는 "파라볼릭 지표에서 매수 신호가 발행할 때" 또는 "파라볼릭 지표에서 매도 신호가 발행할 때"의 이평선으로 판단하고 싶습니다.
다시 말하면 "주가의 종가가 20일 이평선을 상향 돌파할 때" 또는 "주가의 종가가 20일 이평선을 하향 이탈할 때" 가 아닙니다. 이걸 작성하다고 포기했습니다.
3. 아래는 파라볼릭 지표가 매수이고, 주가의 종가가 20봉 이평선을 상향 돌파할면 매수(buy)를 수행하는 코드입니다. 그러나 2.항에 있는 주의 사항의 역배열, 정배열 부분과 1-3.항, 1-4항의 매수 진입, 매수 청산은 구현하지 못했습니다.
Input : af(0.02), maxAF(0.2);
Input : shortPeriod(20), longPeriod(50);
Var : mav(0), sarv(0), Bcond(false);
mav = ma(c,shortPeriod); // 이평선(ma)
sarv = csar(af,maxAF); // 파라볼릭(sar)
Bcond = C > mav and C > Sarv; //
# 매수 진입
If Bcond == true and Bcond[1] == false Then
{
Buy();
}
# 매수 청산
If C < sarv Then
{
ExitLong();
}
많은 도움에 대단히 감사합니다.