예스스탁
예스스탁 답변
2020-11-30 15:35:58
안녕하세요
예스스탁입니다.
일봉에서는 시간을 조건으로 줄수 없습니다.
시간조건은 차트 주기가 분봉이하만 가능합니다,
또한 기본차트(data1)만 분봉으로 지정하고 data2는 일봉이면
완성봉의 값만 사용가능하므로 당일 data2의 봉을 기준으로는 진입을 하지 못합니다.
3시15분시점의 data1과 data2의 일봉값을 이용하고자 하시면
차트는 모두 분봉이고 수식내에서 일봉 이평 계산해서 진입해야 합니다
data1과 data2를 모두 분봉으로 지정하시고 아래식 적용하시기 바랍니다.
1
input : P1(5),P2(20);
var : cnt(0);
var : sum1(0,Data1),mav1(0,data1);
var : sum2(0,Data2),mav2(0,data2);
Array : C2[100](0,Data2);
if Data2(Bdate != Bdate[1]) Then
{
For cnt = 1 to 99
{
C2[cnt] = C2[cnt-1][1];
}
}
C2[0] = Data2(c);
if C2[P2] > 0 Then
{
sum1 = 0;
sum2 = 0;
For cnt = 0 to P2-1
{
if cnt < P1 Then
sum1 = sum1 + DayClose(cnt);
if cnt < P2 Then
sum2 = sum2 + C2[cnt];
}
mav1 = sum1/P1;
mav2 = sum2/P2;
if MarketPosition == 0 and
data1(sTime >= 151500 and sTime[1] < 151500) and
Data1(c) >= mav1 and Data2(c) >= mav2 Then
Buy("b",OnClose,DEF,Floor(1000000/C));
if MarketPosition == 1 and
data1(sTime >= 151500 and sTime[1] < 151500) and
Data2(c) < mav1 Then
ExitLong("bx1");
}
2
input : P1(5),P2(20);
var : cnt(0);
var : sum1(0,Data1),mav1(0,data1);
var : sum2(0,Data2),mav2(0,data2);
Array : C2[100](0,Data2);
if Data2(Bdate != Bdate[1]) Then
{
For cnt = 1 to 99
{
C2[cnt] = C2[cnt-1][1];
}
}
C2[0] = Data2(c);
if C2[P2] > 0 Then
{
sum1 = 0;
sum2 = 0;
For cnt = 0 to P2-1
{
if cnt < P1 Then
sum1 = sum1 + DayClose(cnt);
if cnt < P2 Then
sum2 = sum2 + C2[cnt];
}
mav1 = sum1/P1;
mav2 = sum2/P2;
if MarketPosition == 0 and
data1(sTime >= 151500 and sTime[1] < 151500) and
Data1(c) >= mav1 and Data2(c) >= mav2 Then
Buy("b",OnClose,DEF,Floor(1000000/C));
if MarketPosition == 1 and
Data2(c) < mav1 Then
ExitLong("bx1");
}
즐거운 하루되세요
> 이형지 님이 쓴 글입니다.
> 제목 : 국내주식 매매 수식 부탁드림니다.(kodex 레버리지)
> 차트설정
data1 kodex레버리지 일봉
data2 kodex200 일봉
매수조건 :
1) data2 현재가가 5일 이평선 이상일때
2) data2 현재가가 20일 이평선 이상일때
3) 1과 2를 만족한 상황에서 오후 3시 15분에 100만원 매수
매수청산조건1 :
1) data2 현재가가 5일선 아래 일때
2) 1의 조건을 만족한 상황에서 오후 3시 15분에 전량 청산
매수청산조건2 :
1) data2 현재가가 5일선 아래로 하향 돌파시 전량 매도
매수청산조건1 과 매수청산조건2 를 각각 청산하는 수식 부탁드림니다.