예스스탁
예스스탁 답변
2025-03-04 19:07:32
안녕하세요
예스스탁입니다.
input : 분(60),LENGTH(14);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),DFact(0);
var : sum1(0),mav1(0),DPO(0),DPO1(0),DPO2(0);
var : T(0),HV(0),HH(0),LV(0),LL(0);
var : 매수선(0),매도선(0);
Array : C1[100](0),H1[100](0),L1[100](0);
DFact = (Length * 0.5) + 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
{
for cnt = 99 downto 1
{
C1[cnt] = C1[cnt-1];
H1[cnt] = H1[cnt-1];
L1[cnt] = L1[cnt-1];
}
H1[0] = H;
L1[0] = L;
DPO1 = DPO[1];
DPO2 = DPO1[1];
if DPO1 > 0 and DPO2 <= 0 Then
{
T = 1;
HV = DPO1;
HH = H1[1];
매도선 = LL;
}
if DPO1 < 0 and DPO2 >= 0 Then
{
T = -1;
LV = DPO1;
LL = L1[1];
매수선 = HH;
}
if T == 1 Then
{
if DPO1 > HV Then
{
HV = DPO1;
HH = H1[1];
}
}
if T == -1 Then
{
if DPO1 < LV Then
{
LV = DPO1;
LL = L1[1];
}
}
}
C1[0] = C;
if H1[0] > 0 and H > H1[0] Then
H1[0] = H;
if L1[0] > 0 and L < L1[0] Then
L1[0] = L;
if C1[LENGTH-DFact] > 0 then
{
sum1 = 0;
for cnt = 0 to LENGTH-1
{
sum1 = sum1+C1[cnt+DFact];
}
mav1 = sum1/LENGTH;
DPO = C - mav1;
}
if 매수선 > 0 Then
Plot1(매수선,"매수선");
if 매도선 > 0 Then
Plot2(매도선,"매도선");
}
즐거운 하루되세요
> 길게가자 님이 쓴 글입니다.
> 제목 : 수식 작성 부탁드립니다.
> 지난주에 요청드린 수식을 만들어 주셔서 정말 감사드립니다.
한가지만 더 요청드려도 될까요?
제가 열어 놓은 차트(예를 들어 5분봉)에서 원하는 시간프레임의 매수선, 매도선을 나타나게도 할 수 있을까요?
예를 들어 5분봉 차트를 열었는데 10분봉 기준으로 계산된 매수선, 매도선을 나타내게 하고 싶습니다. 시간프레임은 5분, 10분, 15분, 30분, 1시간, 2시간, 4시간 정도를 선택하고 싶습니다.
감사합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 작성 부탁드립니다.
> 안녕하세요
예스스탁입니다.
INPUT : LENGTH(14);
VAR : DPO(0),T(0),HV(0),HH(0),LV(0),LL(0);
var : 매수선(0),매도선(0);
DPO = DETREND(C, LENGTH);
if CrossUp(DPO,0) Then
{
T = 1;
HV = DPO;
HH = H;
매도선 = LL;
}
if CrossDown(DPO,0) Then
{
T = -1;
LV = DPO;
LL = L;
매수선 = HH;
}
if T == 1 Then
{
if DPO > HV Then
{
HV = DPO;
HH = H;
}
}
if T == -1 Then
{
if DPO < LV Then
{
LV = DPO;
LL = L;
}
}
if 매수선 > 0 Then
Plot1(매수선,"매수선");
if 매도선 > 0 Then
Plot2(매도선,"매도선");
즐거운 하루되세요
> 길게가자 님이 쓴 글입니다.
> 제목 : 수식 작성 부탁드립니다.
> 안녕하세요. 늘 도움을 주셔서 감사드립니다.
DPO(Detrended Price Osc) 지표를 활용한 수식 작성을 아래와 같이 요청드립니다.
<정의>
DPO값이 양수일 때는 '매수구간', 음수일 때는 '매도구간'이라 부르겠습니다.
그리고 '매수구간'을 통해 만들어진 선을 '매수선'이라고 부르고 '매도구간'을 통해 만들어진 선을 '매도선'이라고 부르겠습니다.
<수식 작성 요청>
1. 매수구간 동안 DPO값이 최고일 때의 캔들 고가를 저장해 놨다가 매수구간이 끝나고 매도구간이 시작될 때부터 저장된 캔들의 고가를 선으로 그립니다.(매수선) 이 매수선은 다음 매수구간이 시작해서 끝날 때까지, 즉 새로운 매수구간이 완성되어 다음 매수선이 만들어지기 전까지 그려집니다.
2. 매도구간 동안 DPO값이 최저일 때의 캔들 저가를 저장해 놨다가 매도구간이 끝나고 매수구간이 시작될 때부터 저장된 캔들의 저가를 선으로 그립니다.(매도선) 이 매도선은 다음 매도구간이 시작해서 끝날 때까지, 즉 새로운 매도구간이 와넝되어 다음 매도선이 만들어지기 전까지 그려집니다.
이렇게 두개의 선이 연속적으로 나타나는 선을 요청드립니다.
수고해 주심에 미리 감사드립니다.