예스스탁
예스스탁 답변
2020-11-16 14:18:00
안녕하세요
예스스탁입니다.
참조데이타를 이용시에는
모든 변수에 데이터번호를 지정해 주시고
함수등도 데이타함수로 묶어 주셔야 합니다.
작성한 식에 지수이평과 파라볼릭은 데이터번호가 지정되어 있지 않습니다.
수정한 식입니다.
Input : af(0.02), maxAF(0.2);
Input : shortPeriod(20), longPeriod(50);
Var : T(0,Data1);
Var : mav(0,Data1), sarv(0,Data1);
Var : mav1(0,Data1),mav2(0,Data1);
Var : avg1(0,Data2),avg2(0,Data2);
mav = data1(Ema(c,shortPeriod));
sarv = data1(csar(af,maxAF));
mav1 = Data1(Ema(C,shortPeriod));
mav2 = Data1(Ema(C,longPeriod));
avg1 = Data2(Ema(C,shortPeriod));
avg2 = Data2(Ema(C,longPeriod));
if Data1(CrossUp(c,Sarv)) Then
T = 1;
if T == 1 and MarketPosition <= 0 and CrossUp(C,avg1) Then
{
T = 2;
Buy();
}
if Data1(CrossDown(c,Sarv)) Then
T = -1;
if T == -1 and MarketPosition <= 0 and CrossUp(C,avg1) Then
{
T = -2;
Sell();
}
즐거운 하루되세요
> 스터디 님이 쓴 글입니다.
> 제목 : 주종목(Data1) 시스템과 참조종목(Data2) 시스템의 합성
> 안녕하세요.
간단히 말씀드리면 파라볼릭 시스템과 주가 이평선 골드크로스 시스템을 AND 조건으로 합성하고자 합니다.
1. 아래 로직을 시스템으로 작성하고 싶습니다.
1-1. 매수 진입
(1) 주종목(Data1)은 3분봉이고, 주종목의 파라볼릭(0.02, 0.2) 시스템에서 매수 신호가 발생하거나 매수 신호가 유지된다.
(2) 참조종목(Data2, 정확하게는 타주기)은 5분봉이고, 참조종목은 종가가 20봉 이평선을 상향 돌파하거나 상향 돌파가 유지된다.
(3) 위 (1), (2) 조건을 모두 만족하면, 매수 진입하라.
1-2. 매수 청산
(1) 주종목(Data1)의 파라볼릭(0.02, 0.2) 시스템에서 매도 신호가 발생하면 매수 청산하라.
<매도 진입, 매도 청산: 위에 있는 매수 진입, 매수 청산과 반대 조건입니다>
1-3. 매도 진입
(1) 주종목(Data1)은 3분봉이고, 주종목의 파라볼릭(0.02, 0.2) 시스템에서 매도 신호가 발생하거나 매도 신호가 유지된다.
(2) 참조종목(Data2)은 5분봉이고, 참조종목은 종가가 20봉 이평선을 하향 이탈하거나 하향 이탈이 유지된다.
(3) 위 (1), (2) 조건을 모두 만족하면, 매도 진입하라.
1-4. 매도 청산
(1) 주종목(Data1)의 파라볼릭(0.02, 0.2) 시스템에서 매수 신호가 발생하면 매도 청산하라.
2. 주의 사항
2-1. 위 진입(매수, 매도)은 파라볼릭 시스템과 주가 이평선 골드크로스(데드크로스) 시스템을 AND 조건으로 합성한 것입니다. 그런데, 주가 이평선의 진입 신호를 참조종목(같은 종목의 타주기)에서 가져오겠다는 것이 핵심인데, 작성한 시스템의 결과가 예상과 다르게 나타납니다.
2-2. 아래는 매수 진입, 매수 청산의 경우에 한정한 시스템입니다. 그러나 아래 시스템을 적용했더니 첨부화일 1(그림 1)에 있듯이 매수신호가 발생해야 하는 봉에서 매수신호가 전혀 없네요. 첨부화일 2(그림 2)에는 예상과 다른 봉에서 매수신호가 발생합니다. 예상과 다르게 신호가 나오게 어디가 잘못되서 그런지 모르겠네요.
Input : af(0.02), maxAF(0.2);
Input : shortPeriod(20), longPeriod(50);
Var : value(0);
Var : mav(0), sarv(0), Bcond(false), Scond(false);
Var : mav1(0,Data1),mav2(0,Data1);
Var : avg1(0,Data2),avg2(0,Data2);
mav = Ema(c,shortPeriod);
sarv = csar(af,maxAF);
mav1 = Data1(Ema(C,shortPeriod));
mav2 = Data1(Ema(C,longPeriod));
avg1 = Data2(Ema(C,shortPeriod));
avg2 = Data2(Ema(C,longPeriod));
Bcond = Data2(C) > avg1 and Data1(C) > sarv;
# 매수 진입
If MarketPosition<=0 and Bcond == true and Bcond[1] == false Then
{
Buy();
}
# 매수 청산
If MarketPosition==1 and C < sarv Then
{
ExitLong();
}
많은 도움에 대단히 감사합니다.