답변완료
부탁드립니다.
1. 당일 콜의 현재가가 풋 보조1, 2, 3, 4, 5중에 보조 3의 가격보다 위에서 장이 시작하여 1개라도 보조 풋의 최고가 이하로 하락하면 파란색으로, 그 다음 풋의 최고가 이상으로 상승하면 빨강색으로 기본차트에 구현해 주세요
2. 당일 콜의 현재가가 풋 보조1, 2, 3, 4, 5,중에 보조 3의 가격보다 아래에서 장이 시작하여 1개라도 보조 풋의 최고가 이상으로 상승하면 빨강색으로, 그 다음 풋의 최저가 이하로 하락하면 파란색으로 기본차트에 구현해 주세요
3. 당일 보조 풋의 최고가가 기본 콜의 최저가와 20틱 이내이면 그때부터 빨강색으로 기본차트에 구현해 주세요
항상 고맙습니다.
2023-08-17
954
글번호 171562
강조
답변완료
문의 드립니다!
무더위에 연일 수고가 많습니다!
1, 아래 수식1에서 세로선 발생조건을
(1)N틱전 발생으로 해주시고
(2)세로선 발생시는 동시에 알람신호도 울리도록 수정 부탁드립니다
2, 아래 수식2는 한개의 챠트에 여러개 수식을 각각 다르게 설정해서 사용하고있는데요
이 수식에서 세로선 발생과 동시에
발생된 세로선의 우측 적당한 공간에(가능한 우측 최상단이나 최하단) data번호를 나타내 보이도록 할수있을까요?
즉 아래 수식의 경우는 data11과 data18을 적용한것인데요
이 수식에서 세로선이 발생시 "data11, data18" 이렇게 표시가 되거나
혹은 단순히 "11, 18" 이렇게만 표시가 되어도 상관없습니다
한번 표시된 data번호는 이후에 다른세로선의 data번호가 발생되더라도 계속 존속되었으면합니다
감사합니다!!!
--------------------------------------------------
(수식 1)
var : tl1(0,data1),tl2(0,data1);
var : V1(Data1(C),data1);
if CrossDown(data1(L),data2(H)) or
Crossup(data1(h),data2(L)) Then
{
v1 = data1(C);
}
plot1(v1);
plot2(v1);
if CrossDown(data1(L),data2(H)) or
Crossup(data1(h),data2(L)) Then
{
tl1 = TL_New(sdate,stime,9999999,sdate,stime,0);
TL_SetColor(tl1,magenta);
TL_SetSize(tl1,4);
}
(수식 2)
input : 굵기1(5),굵기2(5),굵기3(5),굵기4(5);
var : cond11(false,data1),cond21(false,data1);
var : cond12(false,data1),cond22(false,data1);
var : TL1(0,Data1),TL2(0,Data1),TL3(0,Data1),TL4(0,Data1);
plot1(data11(highD(0)),"data11고가");
plot2(data11(LowD(0)),"data11저가");
plot3(data18(highD(0)),"data18고가");
plot4(data18(LowD(0)),"data18저가");
cond11 = data18(highD(0)) >= data11(highD(0)-PriceScale*0);
cond21 = data11(lowD(0)) <= data18(lowD(0)+PriceScale*0);
if sTime >= 90300 and Cond11 == true and cond11[1] == false Then
{
PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav");
TL1 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL1,yellow);
TL_SetSize(TL1,굵기1);
}
if sTime >= 90300 and Cond21 == true and cond21[1] == false then
{
PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav");
TL2 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL2,yellow);
TL_SetSize(TL2,굵기2);
}
cond12 = data18(LowD(0)) <= data11(lowD(0)+PriceScale*0);
cond22 = data11(highD(0)) >= data18(highD(0)-PriceScale*0);
if sTime >= 90300 and Cond12 == true and cond12[1] == false Then
{
PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav");
TL3 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL3,yellow);
TL_SetSize(TL3,굵기3);
}
if sTime >= 90300 and Cond22 == true and cond22[1] == false then
{
PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav");
TL4 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL4,yellow);
TL_SetSize(TL4,굵기4);
}
2023-08-17
1112
글번호 171561
지표
답변완료
부탁드립니다
안녕하세요
무더운 날씨에 수고가 많으십니다.
예스랭귀지 수식으로 부탁드립니다.
/////////////////////////////////////////////////////////////
1.
// Inputs
sum_length = input(500, title='EVWMA Length')
vwap_smoothing = input(400, title='VWAP Smoothing')
// Calculate EVWMA
vol_period = math.sum(volume, sum_length)
evwma = 100.100
evwma := ((vol_period - volume) * nz(evwma[1], close) + volume * close) / vol_period
vwap_smooth = ta.ema(ta.vwap, vwap_smoothing)
long = ta.crossover(vwap_smooth, evwma)
short = ta.crossunder(vwap_smooth, evwma)
plot(evwma, color=color.new(color.blue, 100))
plot(vwap_smooth, color=color.new(color.red, 100))
strategy.entry('Long', strategy.long, when=long)
strategy.entry('Short', strategy.short, when=short)
*문의사항
1. blue가 red를 crossUp 할때 buy (색상: 빨간색)
2. red가 blue를 crossUp 할때도 buy (색상: 파란색)
1번 2번 을 or로 묶으주시면 고맙겠습니다.
(* crossdown의 화살표 삭제부탁드립니다.)
3. sell (crossdown) 은 밑에 수식으로 부탁드리겠습니다.
crossdown 외에 나머지도 삭제 부탁드립니다.
// Inputs
length = input(60)
price = input(close)
// RSI
ma = ta.sma(price, length)
plot(ma)
if ta.crossover(close, ma)
strategy.entry('MaLong', strategy.long, comment='MaLong')
if ta.crossunder(close, ma)
strategy.entry('MaShort', strategy.short, comment='MaLong')
1+2+3 합쳐서
가능 하시면 검색식, 시스템식, 지표식 3가지 모두 부탁 드리겠습니다. 꾸벅^^
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2. 지표식으로 변환부탁드립니다.
// Momentum
len = input.int(500, "Momentum Length", 500, group = "Dynamic RSI Momentum")
src = input.source(close, "Source", group = "Dynamic RSI Momentum")
min_rsi = input.int(500, "Min RSI", group = "Dynamic RSI Momentum")
max_rsi = input.int(500, "Max RSI", group = "Dynamic RSI Momentum")
upLvl = input.float(500, "OverBought", 0, 500, group = "Dynamic RSI Momentum")
dnLvl = input.float(500, "OverSold", 0, 500, group = "Dynamic RSI Momentum")
// +++++++++++++++++++++
// ++ CALCULATION ++
// +++++++++++++++++++++
// RMA Function
rmaFun(src, len) =>
sma = ta.sma(src, len)
alpha = 1/len
sum = 0.0
sum := na(sum[1]) ? sma : alpha * src + (1 - alpha) * nz(sum[1])
// RSI Function
rsiFun(src, len) =>
100 - 100 / (1 + rmaFun(src - src[1] > 0 ? src - src[1] : 0, len) /
rmaFun(src[1] - src > 0 ? src[1] - src : 0, len))
// Momentum
momVal = src - src[len]
// Calculation Price vs Momentum
corr = ta.correlation(src, momVal, len)
corr := corr > 1 or corr < -1 ? float(na) : corr
rsiLen = 0
rsiLen := int(min_rsi + nz(math.round((1 - corr) * (max_rsi-min_rsi) / 2, 0), 0))
rsiMom = rsiFun(src, rsiLen)
// +++++++++++++++++++++
// ++ STRATEGY ++
// +++++++++++++++++++++
long = ta.crossover(rsiMom, dnLvl)
short = ta.crossunder(rsiMom, upLvl)
// +++> Long <+++++
if long and not na(rsiMom)
strategy.entry("Long", strategy.long)
// +++> Short <+++++
if short and not na(rsiMom)
strategy.entry("Short", strategy.short)
// +++++++++++++++++++++
// ++ PLOT ++
// +++++++++++++++++++++
plot(rsiMom, "Dynamic RSI Momentum", rsiMom < dnLvl ? color.green : rsiMom > upLvl ? color.red : color.yellow)
hline(50, "Mid Line", color.gray)
upperLine = hline(upLvl, "Upper Line", color.gray)
lowerLine = hline(dnLvl, "Lower Line", color.gray)
fill(upperLine, lowerLine, color.new(color.purple, 90), "Background Fill")
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
수고하세요, 감사합니다.
2023-08-16
988
글번호 171560
시스템
답변완료
이동평균선 변형식에 대해 문의 드립니다.
Input : ma1(5), ma2(20),ma3(60),ma4(120),ma5(240);
Plot1(ma(C,ma1), "ma1");
이 존재할 때
Plot2((ma(C,ma1)*ma1-c[4]+c)/ma1, "ma1");
의 수식을 구현하고 싶습니다. 여기서 c[4]는 ma1에서 가장 좌측에 있는 봉을 의미합니다. 이때 c[4]를 어떻게 표현해야 하는지를 알고 싶고요.
plot1은 현재까지만 보여주면 되고, plot2는 현재가 아닌 추가적으로 우측에 보조지표를 그려넣어야 하는데 이때 어떻게 식을 짜야하는지요?
plot1이 1번에 해당하는 수식이고요. plot2가 2번에 해당합니다.
트레이딩뷰에서는 OFFSET 함수를 썼는데 예스랭귀지에서는 어떤 수식으로 구현을 하는지요?
2023-08-16
1277
글번호 171559
지표
답변완료
타주기 지표식
아래 수식을 타주기챠트에 사용할수 있도록 변환 부탁드립니다
그리고 수식해설 부탁합니다
input : 기간(20),pt(1);
var : A(0),t(0);
A = WMA(C,기간);
if A > A[1]*(1+pt/1000) Then
t = 1;
if A < A[1]*(1-pt/1000) Then
t = -1;
if A <= A[1]*(1+pt/1000) and A >= A[1]*(1-pt/1000) Then
t = 0;
Plot1(t,"지표",iff(T==1,red,blue));
plot2(0,"기준선");
********************************************************
<< 지표 해설 >>
input : 기간(20),pt(5);
var : A(0);
A = WMA(C,기간);
if A > A[1]*(1+pt/1000) Then
value1 = A;
if A < A[1]*(1-pt/1000) Then
value2 = A;
if A <= A[1]*(1+pt/1000) and A >= A[1]*(1-pt/1000) Then
value3 = A;
Plot1(A);
Plot2(value1);
Plot3(Value2);
Plot4(Value3);
2023-08-16
1236
글번호 171558
지표
답변완료
이동평균선 변형식에 대해 추가로 문의드립니다.
말씀해주신대로 작업해서 1차적으로 과거 버전은 해결이 되었습니다.
이젠 현재버전과 과거 버전을 탭으로 구분하려고 합니다.
Input : ma1(5), ma2(20),ma3(60),ma4(120),ma5(240);
-> 이 부분은 과거 버전이고
if LastBarOnChart == 1 Then
Plot1((ma(C,ma1)*ma1-C+O)/ma1, "ma1");
Else
Plot1(ma(C,ma1), "ma1");
-> 이 부분이 현재 버전일 때
Plot1(ma(C,ma1), "ma1");
이것을 탭으로 활용해서 사용자가 선택해서 뜨게 할 수 있는 수식은 어떻게 되는지요?
첨부파일 1 처럼 탭으로 처리하고 싶습니다.
2023-08-16
961
글번호 171557
지표