커뮤니티
로직 작성 문의드립니다.
2016-06-30 11:31:25
139
글번호 99615
Pseudo code를 아래와 같이 작성하였는데,
구현하기가 어려운게 20이평 기준선 돌파봉 완성 후, 다음 캔들이 직전 돌파된 캔들의 고점이나 저점을 깨는 순간 바로 진입하는 것입니다.
그리고 타주기 참조를 어떻게 해야할지....
또 청산로직은 진입로직과 다른데 작성해보니 계속 에러가 나더라구요..ㅠㅠ
----------------------------------------------------------------------------------------
//이동평균 돌파 전략 1호 Pseudo code
30분봉 20선 = 30분 ma(C, 20)
5분봉 20선 = 5분 ma(C, 20)
1분봉 20선 = 1분 ma(C, 20)
//진입 로직
if (30분 현재가 20선 상단 및 기울기 우상승) and (5분 현재가 20선 상단 및 기울기 우상승) and (1분 현재가 20선 상단) and (1분 20선 기울기 (-) -> (+) 전환) then
{
매수 주문(직전 캔들 고점 +1틱)
}
if (30분 현재가 20선 하단 및 기울기 우하향) and (5분 현재가 20선 하단 및 기울기 우하향) and (1분 현재가 20선 하단) and (1분 20선 기울기 (+) -> (-) 전환) then
{
매도 주문(직전 캔들 저점 -1틱)
}
//청산 로직
if (1분 현재가 20선 상단) and (1분 20선 기울기 (-) -> (+) 전환) then
{
숏포지션 청산(매수 : 직전 캔들 고점 +1틱)
}
if (1분 현재가 20선 하단) and (1분 20선 기울기 (+) -> (-) 전환) then
{
롱포지션 청산(매도 : 직전 캔들 고점 -1틱)
}
-------------------------------------------------------------------------------------
부탁드리겠습니다!!
답변 1
예스스탁 예스스탁 답변
2016-06-30 14:30:35
안녕하세요
예스스탁입니다.
input : P(20);
var : cnt(0),TF1(0),TF2(0);
var : sum2(0),sum21(0),sum3(0),sum31(0),mav1(0),mav2(0),mav21(0),mav3(0),mav31(0);
Array : C2[50](0),C3[50](0);
TF1 = TimeToMinutes(stime)%5;
TF2 = TimeToMinutes(stime)%30;
#5분봉 주기 종가저장
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF1 < TF1[1]) Then{
for cnt = 1 to 49{
C2[cnt] = C2[cnt-1][1];
}
}
C2[0] = C;
#30분봉 주기 종가저장
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF2 < TF2[1]) Then{
for cnt = 1 to 49{
C3[cnt] = C3[cnt-1][1];
}
}
C3[0] = C;
if C2[P] > 0 and C3[P] > 0 then{
#5분봉기준 이평계산
sum2 = 0;
sum21 = 0;
for cnt = 0 to P-1{
sum2 = sum2 + C2[cnt];
sum21 = sum21 + C2[cnt+1];
}
mav2 = sum2/P;
mav21 = sum21/P;
#30분봉기준 이평계산
sum3 = 0;
sum31 = 0;
for cnt = 0 to P-1{
sum3 = sum3 + C3[cnt];
sum31 = sum31 + C3[cnt+1];
}
mav3 = sum3/P;
mav31 = sum31/P;
if C > mav3 and mav3 > mav31 and
C > mav2 and mav2 > mav21 and
C > mav1 and mav1 > mav1[1] and mav1[1] < mav1[2] Then
buy("b",AtStop,H+PriceScale*1);
if C < mav3 and mav3 < mav31 and
C < mav2 and mav2 < mav21 and
C < mav1 and mav1 < mav1[1] and mav1[1] > mav1[2] Then
sell("s",AtStop,L-PriceScale*1);
if MarketPosition == 1 and C < mav1 and mav1 < mav1[1] Then
exitlong("bx",AtStop,L-PriceScale*1);
if MarketPosition == -1 and C > mav1 and mav1 > mav1[1] Then
ExitShort("sx",AtStop,H+PriceScale*1);
}
즐거운 하루되세요
> 풍운객 님이 쓴 글입니다.
> 제목 : 로직 작성 문의드립니다.
> Pseudo code를 아래와 같이 작성하였는데,
구현하기가 어려운게 20이평 기준선 돌파봉 완성 후, 다음 캔들이 직전 돌파된 캔들의 고점이나 저점을 깨는 순간 바로 진입하는 것입니다.
그리고 타주기 참조를 어떻게 해야할지....
또 청산로직은 진입로직과 다른데 작성해보니 계속 에러가 나더라구요..ㅠㅠ
----------------------------------------------------------------------------------------
//이동평균 돌파 전략 1호 Pseudo code
30분봉 20선 = 30분 ma(C, 20)
5분봉 20선 = 5분 ma(C, 20)
1분봉 20선 = 1분 ma(C, 20)
//진입 로직
if (30분 현재가 20선 상단 및 기울기 우상승) and (5분 현재가 20선 상단 및 기울기 우상승) and (1분 현재가 20선 상단) and (1분 20선 기울기 (-) -> (+) 전환) then
{
매수 주문(직전 캔들 고점 +1틱)
}
if (30분 현재가 20선 하단 및 기울기 우하향) and (5분 현재가 20선 하단 및 기울기 우하향) and (1분 현재가 20선 하단) and (1분 20선 기울기 (+) -> (-) 전환) then
{
매도 주문(직전 캔들 저점 -1틱)
}
//청산 로직
if (1분 현재가 20선 상단) and (1분 20선 기울기 (-) -> (+) 전환) then
{
숏포지션 청산(매수 : 직전 캔들 고점 +1틱)
}
if (1분 현재가 20선 하단) and (1분 20선 기울기 (+) -> (-) 전환) then
{
롱포지션 청산(매도 : 직전 캔들 고점 -1틱)
}
-------------------------------------------------------------------------------------
부탁드리겠습니다!!
이전글