답변완료
부탁드립니다^^
아래 지표 수식을 화면 box 강세, 약세로 변환 부탁드립니다.
input : length(50);
input : factor(1.0);
input : col_up(Red);
input : col_dn(Lime);
input : col_ul(Cyan);
var : direction(0),count_up(0),count_dn(0);
var : volatility(0),upper(0),lower(0),sig_up(False),sig_dn(False);
var : upper_band(0),lower_band(0);
var : hlc3(0),alpha(0),ATrv(0);
var : tx1(0),tx2(0);
var1 = ma(C,25);
var2 = ma(C,length);
hlc3 = (H+L+C)/3;
volatility = ma(high-low, 70) * factor;
upper = highest(var1 + volatility, int(length/2));
lower = lowest(var2 - volatility, int(length/2));
sig_up = CrossUp(hlc3, upper);
sig_dn = CrossDown(hlc3, lower);
if sig_up == true Then
direction = 1;
if sig_dn == true Then
direction = -1;
upper = iff(direction == 1 , Nan , upper);
lower = iff(direction == -1 , Nan , lower);
if direction == 1 Then
{
count_up = count_up+ 0.5;
count_dn = 0;
}
if direction == -1 Then
{
count_dn = count_dn+0.5;
count_up = 0;
}
count_up = iff(count_up > 70 , 70 , count_up);
count_dn = iff(count_dn > 70 , 70 , count_dn);
alpha = 1 / 100 ;
ATrV = IFf(IsNan(ATrV[1]) == true, ma(TrueRange,100) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATrV[1])==true,0,ATrV[1]));
upper_band = lower + ATRV*5;
lower_band = upper - ATRV*5;
if IsNaN(upper_band) == False Then
plot1(upper_band, "Upper Wave",iff(index % 2 == 0 , nan , col_ul));
Else
NoPlot(1);
if IsNaN(lower_band) == False Then
plot2(lower_band, "Lower Wave",iff(index % 2 == 0 , nan , col_ul));
Else
NoPlot(2);
if IsNaN(upper) == False Then
plot3(upper, "Upper Band",col_dn);
Else
NoPlot(3);
if IsNaN(lower) == False Then
plot4(lower, "Lower Band",col_up);
Else
NoPlot(4);
plot5(C);
if direction != direction[1] and direction == 1 Then
{
tx1 = Text_New_Self(sDate,sTime,Lower,"●");
Text_SetStyle(tx1,2,2);
Text_SetColor(tx1,col_up);
Text_setsize(Tx1,15);
tx2 = Text_New_Self(sDate,sTime,L,"▲");
Text_SetStyle(tx2,2,0);
Text_SetColor(tx2,col_up);
Text_setsize(Tx2,19);
}
if direction != direction[1] and direction == -1 Then
{
tx1 = Text_New_Self(sDate,sTime,upper,"●");
Text_SetStyle(tx1,2,2);
Text_SetColor(tx1,col_dn);
Text_setsize(Tx1,15);
tx2 = Text_New_Self(sDate,sTime,H,"▼");
Text_SetStyle(tx2,2,1);
Text_SetColor(tx2,col_dn);
Text_setsize(Tx2,19);
}
감사합니다~맛점하세요^^
2025-06-17
164
글번호 191814
지표
답변완료
수식좀 요청 드립니다.
ㅇ항상 많은 도움에 고맙습니다.
ㅇ 아래 수식에 보면 3등분선이 나오는데 색상좀 부탁 드림니다.
##
input : n(20);
input : BW(1);
var : hh(0),ll(0),idx(0),tf(0),hh1(0),ll1(0),hh2(0),ll2(0);
var : TL1(0),TL2(0),d1(0),t1(0),TL3(0);
var : HTL1(0),HTL2(0),HTL3(0),HTL4(0),HTL5(0),HTL6(0),ii(0),tx(0);
if Bdate != Bdate[1] Then
idx = 0;
Else
idx = idx+1;
TF = idx%n;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
hh = h;
ll = l;
hh1 = hh[1];
ll1 = ll[1];
hh2 = hh1[1];
ll2 = ll1[1];
d1 = sDate;
t1 = sTime;
ii = 1;
#TL_Delete(TL1);
//TL1 = TL_new(d1,t1,hh,NextBarSdate,NextBarStime,HH);
// TL1 = TL_new(d1,t1,hh,NextBarSdate,NextBarStime,NextBarStime);
TL1 = TL_New(sDate,sTime,HH[0],NextBarSdate,NextBarStime,HH[0]);
//TL1 = TL_New(sDate[0],sTime[0],HH,sDate,sTime,HH);
TL_SetColor(TL1,RgB(0,0,255));
TL_SetSize(TL1,BW);
//TL_SetEnd(TL1[0],sDate,sTime,NextBarStime);
//TL1 = TL_new(sDate,sTime,HH+0.25,NextBarSdate,NextBarStime,HH+0.25);
//TL_SetEnd(TL1,sDate,sTime,HH+0.25);
//TL_SetExtRight(TL1[10],true);
#TL_Delete(TL2);
TL2 = TL_new(d1,t1,ll,NextBarSdate,NextBarStime,ll);
TL_SetColor(TL2,RgB(0,0,255));
TL_SetSize(TL2,BW);
//TL_SetStyle((TL2,2,1);
#TL_Delete(TL3);
TL3 = TL_new(d1,t1,(hh+ll)/2,NextBarSdate,NextBarStime,(hh+ll)/2);
TL_SetColor(TL3,Rgb(0,0,255));
TL_SetSize(TL3,BW);
}
Else
{
ii = ii +1;
TL_SetEnd(TL1,sDate,sTime,HH);
TL_SetEnd(TL2,sDate,sTime,LL);
TL_SetEnd(TL3,sDate,sTime,(HH+LL)/2);
if ii%2 == 0 Then
{
tx = Text_New(sDate,sTime,HH,NumToStr(ii,0));
Text_SetStyle(tx,2,1);
}
}
#if h > hh Then
#{
# hh = h;
// TL_SetBegin(TL1,d1,t1,hh);
// TL_SetBegin(TL3,d1,t1,(hh+ll)/2);
#}
#if l < ll Then
#{
# ll = l;
//TL_SetBegin(TL2,d1,t1,ll);
// TL_SetBegin(TL3,d1,t1,(hh+ll)/2);
#}
//TL_SetEnd(TL1,NextBarSdate,NextBarStime,hh);
//TL_SetEnd(TL2,NextBarSdate,NextBarStime,ll);
//TL_SetEnd(TL3,NextBarSdate,NextBarStime,(hh+ll)/2);
//var1 = (hh+ll)/2;
//var2 = (hh1+ll1)/2;
//var3 = (hh2+ll2)/2;
//Var4 = MA(var1,5) ;
// Plot1(Var4-PriceScale*10,"1",RgB(255,0,255),DeF,2) ;
//Plot2(var2,"2",RgB(0,0,255),DeF,3) ;
//Plot3(var3,"3",RgB(0,0,0),DeF,3) ;
input : n2(20);
var : hh3(0),ll3(0),idx3(0),tf3(0),hh4(0),ll4(0),hh5(0),ll5(0);
var : TL11(0),TL12(0),d13(0),t13(0),TL13(0);
if Bdate != Bdate[1] Then
idx3 = 0;
Else
idx3 = idx+1;
tf3 = idx3%n2;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and tf3 < tf3[1]) Then
{
hh3 = h;
ll3 = l;
hh4 = hh3[1];
ll4 = ll3[1];
hh5 = hh4[1];
ll5 = ll4[1];
d13 = sDate;
t13 = sTime;
#TL_Delete(TL11);
// TL11 = TL_new(d13,t13,hh3,NextBarSdate,NextBarStime,hh3);
#TL_Delete(TL12);
// TL12 = TL_new(d13,t13,ll3,NextBarSdate,NextBarStime,ll3);
#TL_Delete(TL13);
// TL13 = TL_new(d13,t13,(hh+ll)/2,NextBarSdate,NextBarStime,(hh+ll)/2);
}
if h > hh3 Then
{
hh3 = h;
TL_SetBegin(TL11,d13,t13,hh3);
TL_SetBegin(TL13,d13,t13,( hh3 + ll3)/2);
}
if l < ll3 Then
{
ll3 = l;
TL_SetBegin(TL12,d13,t13,ll3);
TL_SetBegin(TL13,d13,t13,( hh3 + ll3)/2);
}
//TL_SetEnd(TL11,NextBarSdate,NextBarStime,hh3);
//TL_SetEnd(TL12,NextBarSdate,NextBarStime,ll3);
//TL_SetEnd(TL13,NextBarSdate,NextBarStime,(hh+ll)/2);
var1 = ( hh3 + ll3)/2;
var2 = ( hh4 + ll4)/2;
var3 = ( hh5 + ll5)/2;
Var4 = MA(var1,5) ;
//Plot1(Var4-PriceScale*1,"1",RgB(255,0,255),DeF,0) ;
* 항상 많은 도움에 고맙습니다. 수고하십시요.
2025-06-17
195
글번호 191796
지표
답변완료
수식 수정 의뢰 드립니다.
안녕하세요!
아래 수식을 예스로 변환을 좀 부탁드립니다!
감사합니다!
//@version=6
indicator('AWMA', overlay = true)
//inputs
_Period1 = input(3, 'WMA1 Period')
_Period2 = input(5, 'WMA2 Period')
_Period3 = input(8, 'WMA3 Period')
_Period4 = input(10, 'WMA4 Period')
_Period5 = input(12, 'WMA5 Period')
_Period6 = input(15, 'WMA6 Period')
_Period7 = input(30, 'WMA7 Period')
_Period8 = input(35, 'WMA8 Period')
_Period9 = input(40, 'WMA9 Period')
_Period10 = input(45, 'WMA10 Period')
_Period11 = input(50, 'WMA11 Period')
_Period12 = input(60, 'WMA12 Period')
//calculate wma
wma1 = ta.wma(close, _Period1)
wma2 = ta.wma(close, _Period2)
wma3 = ta.wma(close, _Period3)
wma4 = ta.wma(close, _Period4)
wma5 = ta.wma(close, _Period5)
wma6 = ta.wma(close, _Period6)
wma7 = ta.wma(close, _Period7)
wma8 = ta.wma(close, _Period8)
wma9 = ta.wma(close, _Period9)
wma10 = ta.wma(close, _Period10)
wma11 = ta.wma(close, _Period11)
wma12 = ta.wma(close, _Period12)
plot(wma1, color = color.new(#4fc3d2, 0), title = 'short1')
plot(wma2, color = color.new(#4fc3d2, 0), title = 'short2')
plot(wma3, color = color.new(#4fc3d2, 0), title = 'short3')
plot(wma4, color = color.new(#4fc3d2, 0), title = 'short4')
plot(wma5, color = color.new(#4fc3d2, 0), title = 'short5')
plot(wma6, color = color.new(#4fc3d2, 0), title = 'short6')
plot(wma7, color = color.new(#fe0d5f, 0), title = 'long1')
plot(wma8, color = color.new(#fe0d5f, 0), title = 'long2')
plot(wma9, color = color.new(#fe0d5f, 0), title = 'long3')
plot(wma10, color = color.new(#fe0d5f, 0), title = 'long4')
plot(wma11, color = color.new(#fe0d5f, 0), title = 'long5')
plot(wma12, color = color.new(#fe0d5f, 0), title = 'long6')
2025-06-17
204
글번호 191795
지표
답변완료
안녕하세요! 답변은 잘받았습니다. 한가지만 더 부탁드리겠습니다!
안녕하세요. 시스템트레이딩 코딩 부탁드립니다.
> 안녕하세요 담당자님 고생많으십니다.
input : lengthMA_MACD(34), lengthSignal(9);
var: src(0), hi(0), lo(0), mi(0);
var: ema1(0), ema2(0), ema_zlema(0);
var: md(0), sb(0), HISTO(0);
// 1) 기준값
src = (High + Low + Close) / 3;
// 2) ZLEMA 계산
ema1 = ema(src, lengthMA_MACD);
ema2 = ema(ema1, lengthMA_MACD);
ema_zlema = ema1 + (ema1 - ema2);
// 3) 고가/저가 평균 (Wilder SMMA)
hi = IFF(IsNaN(hi[1]),
Average(High, lengthMA_MACD),
(hi[1] * (lengthMA_MACD - 1) + High) / lengthMA_MACD);
lo = IFF(IsNaN(lo[1]),
Average(Low, lengthMA_MACD),
(lo[1] * (lengthMA_MACD - 1) + Low) / lengthMA_MACD);
mi = (hi + lo) / 2;
// 4) Kiwoom 스타일 MD 계산
md = IFF(ema_zlema > hi,
ema_zlema - hi,
IFF(ema_zlema < lo,
ema_zlema - lo,
0));
// 5) Signal & Histogram
sb = Average(md, lengthSignal);
HISTO = md - sb;
// 6) 시각화
Plot1(0, "ZeroLine", Gray);
Plot2(md, "PaulMACD", Red);
Plot3(sb, "Signal", Blue);
Plot4(HISTO, "Histogram", IFF(md > sb, Red, Blue));
이렇게 지표는 만드는데 성공을 해서 시각화 까지 잘 되었는데요
그 다음 시스템트레이딩으로 만드는데 어려움이 있어서요 ㅠ
-----------------------------------------------------------------------------------
소중한 답변 정말 감사합니다.한가지만 더 부탁드리겠습니다. 진입사이 임계치를 넣으니 진입횟수가 거의 없어서요 ㅠㅠ
1. 입력 변수
MA MACD Length: 34
Signal Length: 9
2. 지표 계산 방식
src = (High + Low + Close) / 3
ZLEMA = EMA(src, 34) + (EMA(src, 34) - EMA(EMA(src, 34), 34))
고가·저가에 대해 SMMA(34) 적용
hi = SMMA(High, 34)
lo = SMMA(Low, 34)
mid = (hi + lo) / 2
Paul MACD(md) 계산
pascal
복사
편집
md = IFF(ema_zlema > hi,
ema_zlema - hi,
IFF(ema_zlema < lo,
ema_zlema - lo,
0));
Signal(sb) 및 Histogram(HISTO)
pascal
복사
편집
sb = SMA(md, 9);
HISTO = md - sb;
3. 매매 로직
진입(Short)
md[1] > sb[1]인 상태에서 md < sb로 하향 교차할 때
주문: SellShort
청산(Cover)
md[1] < sb[1]인 상태에서 md > sb로 상향 교차할 때
주문: BuyToCover
진입은 paulmacd선이 시그널선을 하향교차할때
청산은 paulmacd선이 시그널선을 상향교차할때
진입사이 임계치를 제외하고 이렇게 부탁드리겠습니다. 감사합니다!
2025-06-16
200
글번호 191793
시스템