답변완료
안녕하세요
study("EMES", shorttitle="EMA", overlay=true, precision=3)
src=input(hl2, title="Source")
fl=input(.5, title="Fast Limit")
sl=input(.05, title="Slow Limit")
sp = (4*src + 3*src[1] + 2*src[2] + src[3]) / 10.0
dt = (.0962*sp + .5769*nz(sp[2]) - .5769*nz(sp[4])- .0962*nz(sp[6]))*(.075*nz(p[1]) + .54)
q1 = (.0962*dt + .5769*nz(dt[2]) - .5769*nz(dt[4])- .0962*nz(dt[6]))*(.075*nz(p[1]) + .54)
i1 = nz(dt[3])
jI = (.0962*i1 + .5769*nz(i1[2]) - .5769*nz(i1[4])- .0962*nz(i1[6]))*(.075*nz(p[1]) + .54)
jq = (.0962*q1 + .5769*nz(q1[2]) - .5769*nz(q1[4])- .0962*nz(q1[6]))*(.075*nz(p[1]) + .54)
i2_ = i1 - jq
q2_ = q1 + jI
i2 = .2*i2_ + .8*nz(i2[1])
q2 = .2*q2_ + .8*nz(q2[1])
re_ = i2*nz(i2[1]) + q2*nz(q2[1])
im_ = i2*nz(q2[1]) - q2*nz(i2[1])
re = .2*re_ + .8*nz(re[1])
im = .2*im_ + .8*nz(im[1])
p1 = iff(im!=0 and re!=0, 360/atan(im/re), nz(p[1]))
p2 = iff(p1 > 1.5*nz(p1[1]), 1.5*nz(p1[1]), iff(p1 < 0.67*nz(p1[1]), 0.67*nz(p1[1]), p1))
p3 = iff(p2<6, 6, iff (p2 > 50, 50, p2))
p = .2*p3 + .8*nz(p3[1])
spp = .33*p + .67*nz(spp[1])
phase = atan(q1 / i1)
dphase_ = nz(phase[1]) - phase
dphase = iff(dphase_< 1, 1, dphase_)
alpha_ = fl / dphase
alpha = iff(alpha_ < sl, sl, iff(alpha_ > fl, fl, alpha_))
mama = alpha*src + (1 - alpha)*nz(mama[1])
fama = .5*alpha*mama + (1 - .5*alpha)*nz(fama[1])
pa=input(false, title="Mark crossover points")
plotarrow(pa?(cross(mama, fama)?mama<fama?-1:1:na):na, title="Crossover Markers")
fr=input(false, title="Fill MAMA/FAMA Region")
duml=plot(fr?(mama>fama?mama:fama):na, style=circles, color=gray, linewidth=0, title="DummyL")
mamal=plot(mama, title="MAMA", color=red, linewidth=2)
famal=plot(fama, title="FAMA", color=green, linewidth=2)
fill(duml, mamal, red, transp=70, title="NegativeFill")
fill(duml, famal, green, transp=70, title="PositiveFill")
ebc=input(false, title="Enable Bar colors")
bc=mama>fama?lime:red
barcolor(ebc?bc:na)
매번 부탁드리게 되어 죄송하고 감사합니다.
예스랭귀지로 변환 문의드립니다.
Fill region이 구현이 예스에서 가능할지 모르겠으나 가능하다면 포함시켜주시면 감사드리겠습니다.
2020-02-21
287
글번호 136202
지표
답변완료
부탁합니다
input : g(13),r(25),s(2);
var1 = ema(ema(c-(highest(H,g) + lowest(L,g))*0.5,r),s) * 100/
(0.5 * ema(ema(highest(H,g)-lowest(L,g),r),s));
plot1(var1);
plot2(40);
plot3(-40);
위 지표를 상승, 하락을 하나의 선으로 색상으로 표현할수 있게 부탁합니다.
2020-02-21
236
글번호 136200
지표
답변완료
안녕하세요
study(title="T", shorttitle="T", overlay=true)
length = input(title="Length", type=integer, defval=5)
factor = input(title="Factor", type=float, minval=0, maxval=1, defval=0.7)
highlightMovements = input(title="Highlight Movements ?", type=bool, defval=true)
src = input(title="Source", type=source, defval=close)
gd(src, length) =>
ema(src, length) * (1 + factor) - ema(ema(src, length), length) * factor
t3 = gd(gd(gd(src, length), length), length)
t3Color = highlightMovements ? (t3 > t3[1] ? green : red) : #6d1e7f
plot(t3, title="T3", linewidth=2, color=t3Color, transp=0)
예스트레이더 수식으로 변경 문의드립니다.
-------------------------------------------------------------------------
study("TFactor", shorttitle="B")
length=input(15)
bt = input( 100, title="Buy Trigger")
st = input( -100, title="Sell Trigger")
markCrossovers=input(false, type=bool)
prev(s,i) =>
y=abs(round(i))
s[y]
calc_ttf( periods ) =>
bp = highest( high, periods ) - prev( lowest( low, periods ), - periods )
sp = prev( highest( high, periods ), - periods ) - lowest( low, periods )
100 * (bp - sp) / ( 0.5*( bp + sp) )
ttf = calc_ttf( length )
plot(0, color=gray)
btl=plot(bt, color=gray, style=3)
stl=plot(st, color=gray, style=3)
long_f = cross( ttf, st ) and rising(ttf, 1)
short_f = cross(ttf, bt ) and falling(ttf, 1)
bs = (ttf > bt) ? bt : ttf
us = (ttf < st) ? st : ttf
bl=plot(bs, color=white)
ul=plot(us, color=white)
tl=plot(ttf, title="TTF", color=markCrossovers ? (long_f ? green : short_f ? red : blue) : maroon, linewidth=2)
fill(bl, tl, color=green, transp=75)
fill(ul, tl, color=red, transp=75)
예스랭귀지로 변환 문의드립니다. 감사합니다.
2020-02-21
219
글번호 136198
지표
답변완료
DATA2의 기술적지표 적용방법 문의드립니다.
안녕하세요.
1) DATA2에 DATA1과 같은종목의 30분봉을 적용하고 DATA2의 기술적 지표를 이용해 매수와 매도 신호를 얻고자 합니다.
아래와같이 수식을 작성하였는데 매수와 매도 시점이 의도한바와 매우 다르게 나오고 있어 문의드립니다.
DATA2를 적용한 기술적 지표의 정의가 맞는지 확인부탁드립니다.
Input : Period1(14),Period2(5),SHORT(3),LONG(10);
var : CCIv(0),CCIsig(0),XCCIv(0),XCCIsig(0),GET(0);
CCIv = CCI(Period1);
CCIsig = ema(CCIv,Period2);
XCCIv = DATA2(CCI(Period1));
XCCIsig = data2(ema(XCCIv,Period2));
2) 10틱 수익시 익절하고자 할때 수식을 부탁드립니다.
3) 조건만족시 매도포지션 청산후 매수포지션 진입하는 수식을 작성했습니다만 에러가 나고 있습니다. 수정을 부탁드립니다.
IF CROSSUP(XCCIV,XCCISIG) AND CCIV<-100 THEN EXITSHORT() AND BUY();
감사합니다.
2020-02-21
302
글번호 136196
시스템
답변완료
재문의 드립니다.
수고하십니다.
원래 질문의 의도와 약간 다른 것 같습니다.
재확인 부탁드립니다.
아래 작성해 주신 수식은 아직 돌려보지 못했습니다..[밖에 있어서..]
1] 일정 기간내가 아닌 어느 특정일인 N일전에 월시가를 돌파하고 ,
그 이후에 월시가 위에 있는 종목 검색을 하려고 합니다. [기본식]
2] N일전 월시가를 돌파하고 월시가 위에 계속 있는 종목 [식1]
N-1일전 월시가를 돌파하고 월시가 위에 계속 있는 종목 [식2]
......
어제 월시가를 돌파하고 월시가 위에 계속 있는 종목 [식N]
3] 그리고 N을 변수로 사용하고 싶습니다.
이런 종목들을 다 합하여 검색결과로 모든 종목이 동시에 표시되게 하고 싶습니다
위 내용으로 작성된게 맞는건지요..?
수식 옆에 간단한 설명을 달아 주시면 아주 고맙겠습니다만..ㅋ
자꾸 번거롭게 해드려서 미안합니다. 즐거운 주말 되세요...
수고하세요
> 예스스탁 님이 쓴 글입니다.
안녕하세요
예스스탁입니다.
월변경이 있었다는 것을 나타내기 위한 변수입니다.
수식이 잘못작성되어 일변경되어 있어 월변경으로 수정했습니다.
1
var : T(0);
if sdate > sdate[1]+30 Then
{
Condition1 = true;
var1 = O;
T = 0;
if C > var1 Then
T = 1;
if C < var1 Then
T = 0;
}
if Condition1 == true then
{
if T <= 0 and C > var1 Then
T = 1;
if T >= 0 and C < var1 Then
T = 1;
if T == 1 Then
find(1);
}
2
아래와 같이 표현하시면 var2가 전월시가입니다.
if sdate > sdate[1]+30 Then
{
var1 = O;
var2 = var1[1]
}
즐거운 하루되세요
> 오이도인 님이 쓴 글입니다.
> 제목 : Re : Re : 종목검색식 부탁합니다..
>
condition1은 뭔가요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 종목검색식 부탁합니다..
> 안녕하세요
예스스탁입니다.
1
월시가를 돌파하고 현재까지 그 위에서 유지되는 종목을 찾으시므로
아래식으로 검색하시면 됩니다. for문이나 배열변수는 필요가 없습니다.
일봉에서 검색에 필요한 최소기간을 30봉이상 지정하시고 검색하시면 됩니다.
var : T(0);
if sdate > sdate[1] Then
{
Condition1 = true;
var1 = O;
T = 0;
if C > var1 Then
T = 1;
if C < var1 Then
T = 0;
}
if Condition1 == true then
{
if T <= 0 and C > var1 Then
T = 1;
if T >= 0 and C < var1 Then
T = 1;
if T == 1 Then
find(1);
}
2
아래와 같이 표현하시면 var2가 전월시가입니다.
if sdate > sdate[1] Then
{
var1 = O;
var2 = var1[1]
}
즐거운 하루되세요
> 오이도인 님이 쓴 글입니다.
> 제목 : 종목검색식 부탁합니다..
> 수고하십니다.
아래와 같은 내용의 식을
for문이나 array를 사용하여 간단하게 식 하나로 바꾸어 주시면 고맙겠습니다..
[어떤 함수를 사용해야 하는지 잘 모름...사용자 메뉴얼이 어디 있는지 알려주세요...]
Q1]일봉 종목검색에서
오늘 종가가 월시가를 돌파하고,
종가가 월시가 위에 [계속] 존재하고 있는 종목을 검색 or
1일전에 종가가 월시가를 돌파하고,
종가가 그후로 월시가 위에 계속 존재하고 있는 종목을 검색 or
2일전에 종가가 월시가를 돌파하고,
종가가 그후로 월시가 위에 계속 존재하고 있는 종목을 검색 or
........
N일전에 종가가 월시가를 돌파하고,
종가가 그후로 월시가 위에 계속 존재하고 있는 종목을 검색
N이 큰 경우
위의 각각의 경우에 검색되는 모든 종목을 한 식으로 검색하여
전부 볼 수 있게하는 검색식 부탁합니다..
var1 = monthopen(0) ;
if (crossup(c,var1) and countif(c>var1,1)==1) or
(crossup(c[1],var1) and countif(c>var1,2)==2) or
(crossup(c[2],var1) and countif(c>var1,3)==3) or
......
(crossup(c[N],var1) and countif(c>var1,N)==N) then
Find(1);
Q2] 월이 바뀐 경우,
위 로직에 전 달 월시가 var1[1]을 적용하려면
식이 어떻게 수정되어야 하는지요?
수고하세요..
2020-02-21
326
글번호 136195
종목검색
답변완료
문의
답변주신 내용 참고삼아 제가 원했던 수식을 작성해보았습니다.
input : uppyra검증1(0.00),상승pyra1(0.00),상승N1(20);
input : uppyra검증2(0.00),상승pyra2(0.00),상승N2(10);
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
LP = C2;
if data2(C >= C2[BarsSinceEntry]+uppyra검증1 and H >= LP+상승Pyra1 and
((C2[BarsSinceEntry]< 0.99) and (C2[BarsSinceEntry] >= 0.01) and MaxContracts < 상승N1)) Then
buy("bb1");
if data2(C >= C2[BarsSinceEntry]+uppyra검증2 and H >= LP+상승Pyra2 and
((C2[BarsSinceEntry]< 2.99) and (C2[BarsSinceEntry] >= 1.00) and MaxContracts < 상승N2)) Then
buy("bb2");
그런데, 이 수식에 변경사항이 있습니다.
피라미딩수식은 그대로 살리고
그 안의 진입가격 구간만 밖으로
꺼내고 그 진입가격은 주종목을 따르는 형식이 필요합니다.
주종목 옵션 가격구간 (0.01 ~ 0.99)을 전제로 한 선물보조차트 피라미딩 방식1
주종목 옵션 가격구간 (1.00 ~ 2.99)을 전제로 한 선물보조차트 피라미딩 방식2
************************************************************************************
안녕하세요
예스스탁입니다.
첫매수가를 기준으로 구분해 드립니다.
Input : 최대(2.99),최소(0.01);
input: 시간1(090000),시간2(144500),봉갯수3(1),상승4(0.10),통제range5(10.00);
input : uppyra검증(0.00),상승pyra(0.00),상승N1(10),상승N2(20);
var : V1(0,data2),C2(0,data1),LP(0,data1);
C2 = data2(c);
if data2(bdate != bdate[1]) Then
{
v1 = 0;
}
if data2(stime >= 시간1 and stime < 시간2) Then
{
v1 = v1 + 1;
if data2(v1 == 봉갯수3 and C > lowD(0)+상승4 and HighD(0) < lowD(0)+통제range5) and 최대 >= C and C >= 최소 Then
buy();
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
LP = C2;
if data2(C >= C2[BarsSinceEntry]+uppyra검증 and H >= LP+상승Pyra and
((C2[BarsSinceEntry]< 1.00 and MaxContracts < 상승N1) or (C2[BarsSinceEntry] >= 1.0 and MaxContracts < 상승N2))) Then
buy("bb");
}
즐거운 하루되세요
> 좌오비우오비 님이 쓴 글입니다.
> 제목 : 진입가격별 피라미딩
> 옵션 진입가격에 제한을 둔 수식입니다.
진입가격별로 피라미딩 수량을 조절하는 부분만 변경해주세요.
피라미딩그룹은 2개면 됩니다.
예)
1.00 에서 2.99 구간 진입했을 때는 10개 적용
0.01 에서 0.99 구간 진입했을 때는 20개 적용
********************************************************************************
안녕하세요
예스스탁입니다.
첫매수가를 기준으로 구분해 드립니다.
Input : 최대(2.99),최소(0.01);
input: 시간1(090000),시간2(144500),봉갯수3(1),상승4(0.10),통제range5(10.00);
input : uppyra검증(0.00),상승pyra(0.00),상승N1(10),상승N2(20);
var : V1(0,data2),C2(0,data1),LP(0,data1);
C2 = data2(c);
if data2(bdate != bdate[1]) Then
{
v1 = 0;
}
if data2(stime >= 시간1 and stime < 시간2) Then
{
v1 = v1 + 1;
if data2(v1 == 봉갯수3 and C > lowD(0)+상승4 and HighD(0) < lowD(0)+통제range5) and 최대 >= C and C >= 최소 Then
buy();
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
LP = C2;
if data2(C >= C2[BarsSinceEntry]+uppyra검증 and H >= LP+상승Pyra and
((C2[BarsSinceEntry]< 1.00 and MaxContracts < 상승N1) or (C2[BarsSinceEntry] >= 1.0 and MaxContracts < 상승N2))) Then
buy("bb");
}
즐거운 하루되세요
> 좌오비우오비 님이 쓴 글입니다.
> 제목 : 진입가격별 피라미딩
> 옵션 진입가격에 제한을 둔 수식입니다.
진입가격별로 피라미딩 수량을 조절하는 부분만 변경해주세요.
피라미딩그룹은 2개면 됩니다.
예)
1.00 에서 2.99 구간 진입했을 때는 10개 적용
0.01 에서 0.99 구간 진입했을 때는 20개 적용
********************************************************************************
Input : 최대(2.99),최소(0.01);
input: 시간1(090000),시간2(144500),봉갯수3(1),상승4(0.10),통제range5(10.00);
input : uppyra검증(0.00),상승pyra(0.00),상승N(0);
var : V1(0,data2),C2(0,data1),LP(0,data1);
C2 = data2(c);
if data2(bdate != bdate[1]) Then
{
v1 = 0;
}
if data2(stime >= 시간1 and stime < 시간2) Then
{
v1 = v1 + 1;
if data2(v1 == 봉갯수3 and C > lowD(0)+상승4 and HighD(0) < lowD(0)+통제range5) and 최대 >= C and C >= 최소 Then
buy();
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
LP = C2;
if data2(C >= C2[BarsSinceEntry]+uppyra검증 and MaxContracts < 상승N and H >= LP+상승Pyra) Then
buy("bb");
}
2020-02-21
312
글번호 136184
시스템