예스스탁
예스스탁 답변
2021-12-16 17:01:19
안녕하세요
예스스탁입니다.
5분봉 차트에 적용하시면 됩니다.
랭귀지는 봉완성(다음봉시가수신)이 기준입니다.
일봉종가가 들어오면 장이 종료된 이후이고
당일 마지막봉에서 조건이 만족해도 다음날시가가 수신되어야 신호와 주문이 집행됩니다.
청산 및 재진입은 다음날 시초가에 신호가 발생하게 작성해 드립니다.
input : P1(5),P2(20);
var : 상한가(0), UpLimit(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0);
var : cnt(0),sum1(0),sum2(0),mav1(0),mav2(0);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else if date >= 20050328 and date < 20150615 Then
UpLimit = (BP[0] * 1.15);
Else
UpLimit = (BP[0] * 1.30);
if CodeCategory() == 2 then
{
if date >= 20030721 then
{
up1 = int(UpLimit/100+0.00001)*100;
up2 = int(UpLimit/100+0.00001)*100;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
else
{
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/10+0.00001)*10;
up7 = int(UpLimit/1+0.00001)*1;
}
}
Else
{
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
if CodeCategory() == 1 || CodeCategory() == 2 then
{
if sdate < 20101004 Then
{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up6);
}
Else
{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up7);
}
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
#일봉 n이평계산
sum1 = 0;
sum2 = 0;
For cnt = 0 to max(P1,P2)
{
if cnt < P1 Then
sum1 = sum1 + DayClose(cnt);
if cnt < P2 then
sum2 = sum2 + DayClose(cnt);
}
mav1 = sum1/P1;
mav2 = sum2/P2;
if Bdate != Bdate[1] Then
{
Condition1 = False;
if DayClose(1) == 상한가[1] Then
Condition1 = true;
}
Else
{
if MarketPosition == 0 and Condition1 == true and CrossUp(C,DayClose(1)) Then
Buy("b1");
}
if MarketPosition == 1 then
{
if NextBarSdate != sDate and c < mav1 Then
exitlong("bx",AtMarket);
}
if MarketPosition == 0 and
IsEntryName("b1",1) == true and
C == Round(mav2,0) Then
Buy("재매수",AtMarket);
즐거운 하루되세요
> aksnfska 님이 쓴 글입니다.
> 제목 : 매수 매도식 부탁합니다.
> 매수식과 매도식이 필요합니다
그림은 5분봉입니다.
매수 식
전일 종가(상한가)
5분 봉으로 전일 종가를 이탈하였다가 상승하면서 5분 봉이 전일 종가를 돌파할 때
매도 식
일 봉 기준이고 일 봉 종가가 5일 선을 탈락하면 매도
재 매수 식
일 봉 종가가 20일 선과 동일할 때 매수
재 매도는
일봉 종가가 5일선 탈락 시 매도
감사합니다.