답변완료
보조지표 Y축 스케일
안녕하세요?
아래 Heikin-Ashi RSI를 커뮤니티에 있어서 적용시켜볼려고 보조지표로 추가하니 Y축 값이 높아지거나 낮아질때 스케일이 변경되지 않아 윗부분과 아래부분의 지표막대가 잘 보이지 않아요.
차트창 속성에서 "차트 확대 축소시 간격 자동조절"에도 체크되어 있는데, 높고 낮은 부분에는 잘 보이지 않습니다.
다른 보조 지표들은 스케일이 자동조절됩니다.
수정 부탁드립니다.
input : i_lenHARSI(14),i_smoothing(7),i_lenRSI(7);
var : i_colUp(0),i_colDown(0),i_colWick(0),i_source(0);
var : _closeRSI(0),_openRSI(0),_highRSI_raw(0),_lowRSI_raw(0);
var : _highRSI(0),_lowRSI(0),_close(0),_open(0),_high(0),_low(0);
Var : cnt(0), DownAmt1(0), UpAmt1(0), UpSum1(0), DownSum1(0), UpAvg1(0), DownAvg1(0),RSIV1(0);
Var : DownAmt2(0), UpAmt2(0), UpSum2(0), DownSum2(0), UpAvg2(0), DownAvg2(0),RSIV2(0);
var : bodyColour(0),wickColour(0);
i_colUp = Teal;
i_colDown = Red;
i_colWick = gray;
i_source = (o+h+l+c)/4;
_closeRSI = rsi(i_lenHARSI)-50;
_openRSI = IFF(IsNaN(_closeRSI[1]) == False, _closeRSI[1], _closeRSI);
If CurrentBar == 1 AND i_lenHARSI > 0 Then Begin
UpSum1 = 0;
DownSum1 = 0;
For cnt = 0 To i_lenHARSI - 1 Begin
UpAmt1 = H[cnt] - H[cnt+1];
If UpAmt1 >= 0 Then
DownAmt1 = 0;
Else Begin
DownAmt1 = -UpAmt1;
UpAmt1 = 0;
End;
UpSum1 = UpSum1 + UpAmt1;
DownSum1 = DownSum1 + DownAmt1;
End;
UpAvg1 = UpSum1 / i_lenHARSI;
DownAvg1 = DownSum1 / i_lenHARSI;
End
Else
If CurrentBar > 1 AND i_lenHARSI > 0 Then Begin
UpAmt1 = H[0] - H[1];
If UpAmt1 >= 0 Then
DownAmt1 = 0;
Else Begin
DownAmt1 = -UpAmt1;
UpAmt1 = 0;
End;
UpAvg1 = (UpAvg1[1] * (i_lenHARSI - 1) + UpAmt1) / i_lenHARSI;
DownAvg1 = (DownAvg1[1] * (i_lenHARSI - 1) + DownAmt1) / i_lenHARSI;
End;
If UpAvg1 + DownAvg1 <> 0 Then
RSIV1 = 100 * UpAvg1 / (UpAvg1 + DownAvg1);
Else
RSIV1 = 0;
If CurrentBar == 1 AND i_lenHARSI > 0 Then Begin
UpSum2 = 0;
DownSum2 = 0;
For cnt = 0 To i_lenHARSI - 1 Begin
UpAmt2 = L[cnt] - L[cnt+1];
If UpAmt2 >= 0 Then
DownAmt2 = 0;
Else Begin
DownAmt2 = -UpAmt2;
UpAmt2 = 0;
End;
UpSum2 = UpSum2 + UpAmt2;
DownSum2 = DownSum2 + DownAmt2;
End;
UpAvg2 = UpSum2 / i_lenHARSI;
DownAvg2 = DownSum2 / i_lenHARSI;
End
Else
If CurrentBar > 2 AND i_lenHARSI > 0 Then Begin
UpAmt2 = L[0] - L[1];
If UpAmt2 >= 0 Then
DownAmt2 = 0;
Else Begin
DownAmt2 = -UpAmt2;
UpAmt2 = 0;
End;
UpAvg2 = (UpAvg2[1] * (i_lenHARSI - 1) + UpAmt2) / i_lenHARSI;
DownAvg2 = (DownAvg2[1] * (i_lenHARSI - 1) + DownAmt2) / i_lenHARSI;
End;
If UpAvg2 + DownAvg2 <> 0 Then
RSIV2 = 100 * UpAvg2 / (UpAvg2 + DownAvg2);
Else
RSIV2 = 0;
_highRSI_raw = RSIV1-50;
_lowRSI_raw = RSIV2-50;
_highRSI = max(_highRSI_raw, _lowRSI_raw);
_lowRSI = min(_highRSI_raw, _lowRSI_raw);
_close = (_openRSI + _highRSI + _lowRSI + _closeRSI) / 4;
_open = iff(isnan(_open[i_smoothing]) == true, (_openRSI + _closeRSI) / 2 , (_open[1] * i_smoothing + _close[1]) / (i_smoothing + 1));
_high = max(_highRSI, max(_open, _close));
_low = min(_lowRSI, min(_open, _close));
bodyColour = iff(_close > _open , i_colUp , i_colDown);
wickColour = i_colWick;
var1 = TL_New_Self(sDate,sTime,_open,sDate,sTime,_close);
var2 = TL_New_Self(sDate,sTime,_high,sDate,sTime,max(_open,_close));
var3 = TL_New_Self(sDate,sTime,_Low,sDate,sTime,min(_open,_close));
TL_SetColor(var1,bodyColour);
TL_SetColor(var2,i_colWick);
TL_SetColor(var3,i_colWick);
TL_SetSize(var1,6);
TL_SetSize(var2,1);
TL_SetSize(var3,1);
2025-02-28
350
글번호 188677
지표
답변완료
파라볼릭 크기
Input : af(0.02), maxAF(0.2);
var : T(0),B(0),S(0),tx(0),txx(0),TL(0),box(0);
var : HH(0),LL(0),B1(0),B2(0),B3(0),B4(0),S1(0),S2(0),S3(0),S4(0),H1(0),H2(0),H3(0),H4(0),L1(0),L2(0),L3(0),L4(0);
var1 = CSar(af,maxAF);
if CrossUp(C,var1) Then
{
T = 1;
B = var1;
B1 = B[1];
B2 = B1[1];
B3 = B2[1];
B4 = B3[1];
HH = H;
H1 = HH[1];
H2 = H1[1];
H3 = H2[1];
H4 = H3[1];
if abs(S-LL) < 0.7 Then
Text_Delete(tx);
tx = Text_New(sDate,sTime,HH,NumToStr(abs(HH-B),2));
Text_SetColor(tx,Red);
Text_SetSize(tx,25);
Text_SetStyle(tx,1,1);
Text_SetBold(tx,1);
box = Box_New(sDate,sTime,B,NextBarSdate,NextBarStime,HH);
Condition1 = False;
Condition3 = False;
Condition5 = False;
}
if CrossDown(C,var1) Then
{
T = -1;
S = var1;
S1 = S[1];
S2 = S1[1];
S3 = S2[1];
S4 = S3[1];
LL = L;
L1 = LL[1];
L2 = L1[1];
L3 = L2[1];
L4 = L3[1];
if abs(B-HH) < 0.7 Then
Text_Delete(tx);
tx = Text_New(sDate,sTime,LL,NumToStr(abs(LL-S),2));
Text_SetColor(tx,Blue);
Text_SetSize(tx,25);
Text_SetStyle(tx,1,0);
Text_SetBold(tx,1);
box = Box_New(sDate,sTime,S,NextBarSdate,NextBarStime,LL);
Condition2 = False;
Condition4 = False;
Condition6 = False;
}
Else
{
if T == 1 Then
{
if H > HH Then
HH = H;
Text_SetString(tx,NumToStr(abs(HH-B),2));
Text_SetLocation(tx,sDate,sTime,HH);
Box_SetEnd(box,NextBarSdate,NextBarStime,hh);
if HH < B+0.4 Then
{
Box_SetColor(box,Magenta);
Box_SetFill(box,true,90);
}
Else if HH >= B+0.4 and HH < B+0.5 Then
{
Box_SetColor(box,Gold);
Box_SetFill(box,true,150);
}
Else if HH >= B+0.5 and HH < B+0.65 Then
{
Box_SetColor(box,Orange);
Box_SetFill(box,true,100);
}
Else if HH >= B+0.65 and HH < B+0.8 Then
{
Box_SetColor(box,Pink);
Box_SetFill(box,true,120);
}
Else if HH >= B+0.8 and HH < B+1.2 Then
{
Box_SetColor(box,Magenta);
Box_SetFill(box,true,50);
}
Else if HH >= B+1.2 and HH < B+1.9 Then
{
Box_SetColor(box,Gray);
Box_SetFill(box,true,60);
}
Else
{
Box_SetColor(box,Pink);
Box_SetFill(box,true,90);
}
if B1 > 0 and B3 > B4 and H > H1 and H1 > H2 and H2 > H3 and H3 > H4 and Condition3 == False Then
{
Condition3 = true;
Buy();
txx = Text_New(sdate,sTime,H-0.7,"■");
Text_SetStyle(txx,2,2);
Text_SetColor(txx,Green);
Text_SetSize(txx,40);
}
if B1 > 0 and B >= B1 and H > H1 and B1 > B2 and H1 > H2 and Condition1 == False Then
{
Condition1 = true;
Buy();
txx = Text_New(sdate,sTime,H-0.7,"●");
Text_SetStyle(txx,2,2);
Text_SetColor(txx,Blue);
Text_SetSize(txx,35);
}
if Condition5 == False and var1 >= B+1.9 Then
{
Condition5 = true;
TL_New(sDate,sTime,0,sDate,sTime,999999999);
}
}
if T == -1 Then
{
if L < LL Then
LL = L;
Text_SetString(tx,NumToStr(abs(LL-S),2));
Text_SetLocation(tx,sDate,sTime,LL);
Box_SetEnd(box,NextBarSdate,NextBarStime,LL);
if LL > S-0.4 Then
{
Box_SetColor(box,Lime);
Box_SetFill(box,true,120);
}
Else if LL <= S-0.4 and ll > S-0.5 Then
{
Box_SetColor(box,Cyan);
Box_SetFill(box,true,150);
}
Else if LL <= S-0.5 and ll > S-0.65 Then
{
Box_SetColor(box,Blue);
Box_SetFill(box,true,50);
}
Else if LL <= S-0.65 and ll > S-0.8 Then
{
Box_SetColor(box,Yellow);
Box_SetFill(box,true,100);
}
Else if LL <= S-0.8 and ll > S-1.2 Then
{
Box_SetColor(box,Lime);
Box_SetFill(box,true,100);
}
Else if LL <= S-1.2 and ll > S-1.6 Then
{
Box_SetColor(box,Cyan);
Box_SetFill(box,true,100);
}
Else if LL <= S-1.6 and ll > S-1.9 Then
{
Box_SetColor(box,Blue);
Box_SetFill(box,true,30);
}
Else
{
Box_SetColor(box,Yellow);
Box_SetFill(box,true,100);
}
if S1 > 0 and S3 < S4 and L < L1 and L1 < L2 and L2 < L3 and L3 < L4 and Condition4 == False Then
{
Condition4 = true;
Buy();
txx = Text_New(sdate,sTime,L+0.7,"■");
Text_SetStyle(txx,2,2);
Text_SetColor(txx,Black);
Text_SetSize(txx,40);
}
if S1 > 0 and S <= S1 and L < L1 and S1 < S2 and L1 < L2 and Condition2 == False Then
{
Condition2 = true;
Buy();
txx = Text_New(sdate,sTime,L+0.7,"●");
Text_SetStyle(txx,2,2);
Text_SetColor(txx,Red);
Text_SetSize(txx,35);
}
if Condition6 == False and var1 <= B-1.9 Then
{
Condition6 = true;
TL_New(sDate,sTime,0,sDate,sTime,999999999);
}
}
}
if MarketPosition == 1 and BarsSinceEntry == 1 Then ExitLong();
if MarketPosition == -1 and BarsSinceEntry == 1 Then ExitShort();
하락은 노란색박스, 상승은 핑크색 박스에서 세로선이 모두 표시되어야 하는데 안나옵니다.
파라볼릭 크기가 1.9p 되는 지점에서만 세로선. 확인 부탁드립니다.
2025-02-28
354
글번호 188676
시스템
답변완료
수식 변환좀 부탁드립니다.
만들어 주신 강조 수식을 신호가 발생시 소리가 나올수 있게 시스템 수식으로 변환좀 요청드립니다.
매번 감사드립니다.^^
input : a(1);
input : ATRP(10);
input : ha(false);
var : xATR(0),nLoss(0);
var : xClose(0),xHigh(0),xLow(0),xOpen(0),src(0);
var : xATRTrailingStop(0),ps(0),xcolor(0);
xATR = atr(ATRP);
nLoss = a * xATR;
if index == 0 then
{
xClose = (O+H+L+C)/4;
xOpen = open;
xHigh = MaxList( high, xOpen, xClose);
xLow = MinList( low, xOpen,xClose);
}
else
{
xClose = (O+H+L+C)/4;
xOpen = (xOpen [1] + xClose [1])/2 ;
xHigh = MaxList(High, xOpen, xClose) ;
xLow = MinList(Low, xOpen, xClose) ;
}
if ha == False Then
src = close;
Else
src = xClose;
var1 = IFf(IsNan(xATRTrailingStop[1]) ==true,0,xATRTrailingStop[1]);
xATRTrailingStop =iff(src > var1 and src[1] > var1, max(var1, src - nLoss),
iff(src < var1 and src[1] < var1, min(var1, src + nLoss),
iff(src > var1, src - nLoss, src + nLoss)));
ps = iff(src[1] < var1 and src > var1, 1,
iff(src[1] > var1 and src < var1, -1, IFf(IsNaN(ps[1])==true,0,ps[1])));
xcolor = iff(ps == -1 , red, IFf(ps == 1 , green , blue));
var : emv(0),above(False),below(False);
var : b(False),s(False),barbuy(False),barsell(False),tx(0);
emv = ema(src,1);
above = CrossUp(emv, xATRTrailingStop);
below = CrossUp(xATRTrailingStop, emv);
b = src > xATRTrailingStop and above;
s = src < xATRTrailingStop and below;
barbuy = src > xATRTrailingStop;
barsell = src < xATRTrailingStop ;
if b == true Then
{
tx = Text_New(sDate,sTime,L,"▲");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,Green);
}
if s == true Then
{
tx = Text_New(sDate,sTime,H,"▼");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,Red);
}
if barbuy == true Then
PlotPaintBar(H,L,"강조",Green);
if barsell == true Then
PlotPaintBar(H,L,"강조",Red);
2025-02-28
303
글번호 188663
시스템