예스스탁
예스스탁 답변
2020-07-10 14:31:27
안녕하세요
예스스탁입니다.
1
input : ntime(60),Period(20);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0), Hv(0), LV(0), WR(0);
Array : HH[100](0),LL[100](0);
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 = TimeToMinutes(stime)%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 99
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[Period-1] > 0 and LL[Period-1] > 0 then
{
Hv = HH[0];
LV = LL[0];
for cnt = 0 to Period-1
{
if HH[cnt] > Hv then
Hv = HH[cnt];
if LL[cnt] < LV then
LV = LL[cnt];
}
WR = (HV-C)/(HV-LV)*(-100);
Plot1(WR,"WR");
PlotBaseLine1(-20,"기준선-20");
PlotBaseLine2(-80,"기준선-80");
}
}
2
input : N(3),Period(20);
var : S1(0),D1(0),idx(0),TF(0);
var : cnt(0), Hv(0), LV(0), WR(0);
Array : HH[100](0),LL[100](0);
if Bdate != Bdate[1] Then
{
D1 = sdate;
IDX = 0;
}
Else
idx = idx+1;
if D1 > 0 then
{
TF =idx%N;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 99
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[Period-1] > 0 and LL[Period-1] > 0 then
{
Hv = HH[0];
LV = LL[0];
for cnt = 0 to Period-1
{
if HH[cnt] > Hv then
Hv = HH[cnt];
if LL[cnt] < LV then
LV = LL[cnt];
}
WR = (HV-C)/(HV-LV)*(-100);
Plot1(WR,"WR");
PlotBaseLine1(-20,"기준선-20");
PlotBaseLine2(-80,"기준선-80");
}
}
3
Input : Period(20);
Var : WR(0),cnt(0);
value1 = DayHigh(0);
value2 = dayhigh(0);
for cnt = 0 to Period-1{
if dayhigh(cnt) > value1 Then
value1 = dayhigh(cnt);
if daylow(cnt) < value2 Then
value2 = daylow(cnt);
}
WR = (value1 - Close) / (value1 - value2) * (-100);
plot1(WR);
PlotBaseLine1(-20,"기준선-20");
PlotBaseLine2(-80,"기준선-80");
4
input : N(3),Period(20);
var : S1(0),D1(0),idx(0),TF(0);
var : cnt(0), Hv(0), LV(0), WR(0);
Array : HH[100](0),LL[100](0);
if dayofweek(Bdate) < DayOfWeek(Bdate[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 99
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[Period-1] > 0 and LL[Period-1] > 0 then
{
Hv = HH[0];
LV = LL[0];
for cnt = 0 to Period-1
{
if HH[cnt] > Hv then
Hv = HH[cnt];
if LL[cnt] < LV then
LV = LL[cnt];
}
WR = (HV-C)/(HV-LV)*(-100);
Plot1(WR,"WR");
PlotBaseLine1(-20,"기준선-20");
PlotBaseLine2(-80,"기준선-80");
}
5
input : N(3),Period(20);
var : S1(0),D1(0),idx(0),TF(0);
var : cnt(0), Hv(0), LV(0), WR(0);
Array : HH[100](0),LL[100](0);
if Bdate > Bdate[1]+30 Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 99
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[Period-1] > 0 and LL[Period-1] > 0 then
{
Hv = HH[0];
LV = LL[0];
for cnt = 0 to Period-1
{
if HH[cnt] > Hv then
Hv = HH[cnt];
if LL[cnt] < LV then
LV = LL[cnt];
}
WR = (HV-C)/(HV-LV)*(-100);
Plot1(WR,"WR");
PlotBaseLine1(-20,"기준선-20");
PlotBaseLine2(-80,"기준선-80");
}
즐거운 하루되세요
> 뮬리 님이 쓴 글입니다.
> 제목 : 부탁 드립니다.
> 항상 도움 주서셔 깊이 감사 드립니다.
Williams'R 수식에서 WILLR 함수식의 타주기 수식 부탁 드립니다.
참고로 이전 작성해주신 obv의 타주기 수식 첨부 합니다.
수차례 부탁드린 타주기 수식은 이것으로 마무리 되는듯 하오며
미리 경배로 감사 인사 올립니다.
예를 들어
1)10분봉 차트에서 60분봉의 WILLR지표
2)100틱 차트에서 300틱봉의 WILLR지표
3)분봉 차트에서 일봉의 WILLR지표
4)분봉 또는 일봉차트에서 주봉의 WILLR지표
5)분봉 또는 일봉,주봉 차트에서 월봉의 WILLR지표
WILLR 의 함수식)
Input : Period(20);
Var : value1(0), value2(0);
value1 = Highest(H, Period);
value2 = Lowest(L, period);
WILLR = (value1 - Close) / (value1 - value2) * (-100);
참고수식)
1
input : ntime(60);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : C1(0),CC(0),sum(0),value(0),pre(0);
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%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
C1 = CC[1];
sum = 0;
pre = value[1];
}
CC = C;
sum = sum + v;
if C1 > 0 Then
{
if CC > C1 Then
value = pre+sum;
if CC < C1 Then
value = pre-sum;
plot1(value);
PlotBaseLine1(0);
}
}
2
input : n(3);
var : idx(0),D1(0),TF(0),cnt(0);
var : C1(0),CC(0),sum(0),value(0),pre(0);
if Bdate != Bdate[1] Then
{
D1 = sdate;
IDX = 0;
}
Else
idx = idx+1;
if D1 > 0 then
{
TF = idx%N;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
C1 = CC[1];
sum = 0;
pre = value[1];
}
CC = C;
sum = sum + v;
if C1 > 0 Then
{
if CC > C1 Then
value = pre+sum;
if CC < C1 Then
value = pre-sum;
plot1(value);
PlotBaseLine1(0);
}
}
3
var : CC(0),C1(0),sum(0),pre(0),value(0);
if Bdate != Bdate[1] Then
{
C1 = CC[1];
sum = 0;
pre = value[1];
}
CC = C;
sum = sum + v;
if C1 > 0 Then
{
if CC > C1 Then
value = pre+sum;
if CC < C1 Then
value = pre-sum;
plot1(value);
PlotBaseLine1(0);
}
4
var : CC(0),C1(0),sum(0),pre(0),value(0);
if dayofweek(Bdate) < DayOfWeek(Bdate[1]) Then
{
C1 = CC[1];
sum = 0;
pre = value[1];
}
CC = C;
sum = sum + v;
if C1 > 0 Then
{
if CC > C1 Then
value = pre+sum;
if CC < C1 Then
value = pre-sum;
plot1(value);
PlotBaseLine1(0);
}
5
var : CC(0),C1(0),sum(0),pre(0),value(0);
if Bdate > Bdate[1]+30 Then
{
C1 = CC[1];
sum = 0;
pre = value[1];
}
CC = C;
sum = sum + v;
if C1 > 0 Then
{
if CC > C1 Then
value = pre+sum;
if CC < C1 Then
value = pre-sum;
plot1(value);
PlotBaseLine1(0);
}