다 주기 관련해서 질문에 대한 답을 받았는데요..
이해가 안됩니다.
주석을 좀 달아주시면 감사하겠습니다.
input : 타주기분(10);
input : short(12),long(26),sig(9);
var : S1(0),D1(0),TM(0),TF(0);
var : MACDV(0),MACDS(0);
macdv = macd(short,long);
macds = ema(macdv,sig);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
var1 = Open;
}
if CrossUp(MACDV,0) and C > var1 Then
Buy();
if CrossDown(MACDV,0) and c < var1 Then
Sell();
}
답변 1
예스스탁
예스스탁 답변
2024-08-06 11:23:19
안녕하세요
예스스탁입니다.
우선 아래식에 사용되는 TimeToMinutes함수는
봉의 시간을 0시이후 몇분이 경과했는지 리턴해주는 함수입니다.
9시이면 540리턴, 9시 30분이면 570리턴.
input : 타주기분(10);
input : short(12),long(26),sig(9);
var : S1(0),D1(0),TM(0),TF(0);
var : MACDV(0),MACDS(0);
#기본차트 macd와 시그널
macdv = macd(short,long);
macds = ema(macdv,sig);
#영업일(거래소 영업일) 변경
if Bdate != Bdate[1] Then
{
#첫봉의 시간(0시이후 경과분)
S1 = TimeToMinutes(stime);
#첫봉 날짜(달력상 날짜, 0시 기준 변경된 날짜)
D1 = sdate;;
}
#영업일 변경이후
if D1 > 0 then
{
#TM은 장시작후 몇분이 경과되었는지 계산해서 저장되는 변수
#봉의 날짜가 영엽일변경일과 같으면
if sdate == D1 Then
#현재봉 경과분값과 영업일 첫봉의 경과분의 차이를 TM에 저장
TM = TimeToMinutes(stime)-S1;
Else #영업일 변경 후 0시를 넘어가면(다음날)
#현재 경과분에 24시에 해당하는 분을 더하고 영업일 첫봉의 경과분을 차감
TM = TimeToMinutes(stime)+1440-S1;
#FM을 10으로 나누어 나머지를 구함
TF = TM%타주기분;
#당일 첫봉이거나
#첫봉이후 타주기분이 1보다 클 경우 TF값이 상승하다가 하락하거나
#첫봉이후 타주기분이 1보다 클 경우 현재봉 경과시간(분)이 전봉대비 타주기분 이상 증가하거나
#첫봉이후 타주기분이 1이면 현재봉 경과시간(분)이 전봉대비 경과시간(분)보다 커질때
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
#타주기봉 시가 저장
var1 = Open;
}
#기본차트 MACD가 0을 상향돌파하고 타주기봉이 양봉일때
if CrossUp(MACDV,0) and C > var1 Then
Buy();
#기본차트 MACD가 0을 하향이탈하고 타주기봉이 음봉일때
if CrossDown(MACDV,0) and c < var1 Then
Sell();
}
즐거운 하루되세요
> 하늘만큼11 님이 쓴 글입니다.
> 제목 : 답변주신 수식에서 주석부탁합니다
> 다 주기 관련해서 질문에 대한 답을 받았는데요..
이해가 안됩니다.
주석을 좀 달아주시면 감사하겠습니다.
input : 타주기분(10);
input : short(12),long(26),sig(9);
var : S1(0),D1(0),TM(0),TF(0);
var : MACDV(0),MACDS(0);
macdv = macd(short,long);
macds = ema(macdv,sig);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
var1 = Open;
}
if CrossUp(MACDV,0) and C > var1 Then
Buy();
if CrossDown(MACDV,0) and c < var1 Then
Sell();
}