예스스탁
예스스탁 답변
2022-05-27 10:05:52
안녕하세요
예스스탁입니다.
지수이평이 근간이 되는 지표는 과거봉수에 따라 값이 다릅니다.
특히나 타주기를 계산할 경우 상대적으로 봉수가 작아져
실제 보시는 30분봉의 값과 다를수 있습니다.
이용에 참고하시기 바랍니다.
input : 타주기분(30),Period(14);
var : S1(0),D1(0),TM(0),TF(0),idx(0),EP(0);
var : CC(0),CC1(0),HH(0),HH1(0),LL(0),LL1(0);
var : Ema1(0),PreEma1(0),Ema2(0),PreEma2(0),Ema3(0),PreEma3(0);
var : DP(0),DM(0),Adxv(0),PreAdxv(0),PreDP(0),PreDM(0);
Ep = 2/(Period+1);
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
{
TL_New(sDate,sTime,0,sDate,sTime,99999999);
HH = H;
LL = L;
HH1 = HH[1];
LL1 = LL[1];
CC1 = CC[1];
idx = idx+1;
PreEma1 = Ema1[1];
PreEma2 = Ema2[1];
PreEma3 = Ema3[1];
PreAdXv = ADXv[1];
PreDP = DP[1];
PreDM = DM[1];
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
CC = C;
if HH1 > 0 Then
{
if HH-HH1>0 && HH-HH1 > LL1-LL then
var1 = HH-HH1;
Else
var1 = 0;
if LL1-LL>0 && HH-HH1 < LL1-LL then
var2 = LL1-LL;
Else
var2 = 0;
Var3 = max(HH-LL,abs(CC1-HH),abs(CC1-LL));
if idx <= 1 Then
{
Ema1 = var1;
Ema2 = var2;
Ema3 = var3;
DP = Ema1/Ema3*100;
DM = Ema2/Ema3*100;
var4 = abs(DP-DM)/(DP+DM)*100;
adxv = var4;
}
Else
{
Ema1 = var1 * EP + PreEma1 * (1-EP);
Ema2 = var2 * EP + PreEma2 * (1-EP);
Ema3 = var3 * EP + PreEma3 * (1-EP);
DP = Ema1/Ema3*100;
DM = Ema2/Ema3*100;
var4 = abs(DP-DM)/(DP+DM)*100;
adxv = var4 * EP + PreAdxv * (1-EP);
}
If DP > DM and PreDP < PreDM Then
{
Buy();
}
If DP < DM and PreDP > PreDM Then
{
Sell();
}
}
}
즐거운 하루되세요
> 천년대로 님이 쓴 글입니다.
> 제목 : 수식부탁드립니다.
> 안녕하세요?
수고에 감사드립니다.
아래의 dmi지표수식을 30분봉의 매수,매도 신호를 5분봉에 전환하는식을 부탁합니다.
감사합니다.
input : Period(14);
var : DP(0),DM(0),adxv(0);
DP = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Period)/
ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100;
DM = ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Period)/
ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100;
adxv = Ema(abs(DP-DM)/(DP+DM),period)*100;
# 매수/매도청산
If CrossUP(dp,dm) Then
{
Buy();
}
# 매수청산
If CrossDown(dp,dm) Then
{
Sell();
}