답변완료
질문 요청 드립니다.(피뽀)
* 좋은 한주 되십시요.
* 아래 수식에서 지그재그선이 만들어 지는데
1. 50틱 보다 크면 선굵기를 5 로 표시
2. 50틱 단위로 중간중간 표시가 가능 한가요?
즉 차이가 100틱 이면 중간에 선이 두개 149틱 이면 두개 150틱이면 3개....
## 아래 수식
Input : af(0.07), maxAF(0.2);
var : t(0),tl(0),tl1(0),tl2(0),tx1(0),tx2(0),color(0);
var : hh(0),hd(0),ht(0),hh1(0),tl11(0);
var : ll(0),ld(0),lt(0),ll1(0),tl22(0);
var1 = SAR(af,maxAF);
if CrossUp(C,var1) Then
{
T = 1;
hh = var1;
hh1 = hh[1];
hd = sDate;
ht = sTime;
if ll > 0 Then
{
tl = TL_New(ld,lt,ll,hd,ht,hh);
tl1 = TL_New(hd,ht,hh,NextBarSdate,NextBarStime,hh);
tx1 = Text_New(sDate,sTime,hh,NumToStr(hh,2)+NewLine+"+"+NumToStr(abs(hh-ll)/PriceScale,0));
Text_SetStyle(tx1,2,1);
if hh1 == 0 or (hh1 > 0 and hh < hh1) Then
color = Blue;
}
}
else if CrossDown(C,var1) Then
{
T = -1;
ll = var1;
ll1 = ll[1];
ld = sDate;
lt = sTime;
if hh > 0 Then
{
tl = TL_New(hd,ht,hh,ld,lt,ll);
tl2 = TL_New(ld,lt,ll,NextBarSdate,NextBarStime,ll);
tx2 = Text_New(sDate,sTime,ll,NumToStr(ll,2)+NewLine+"-"+NumToStr(abs(hh-ll)/PriceScale,0));
Text_SetStyle(tx2,2,0);
if ll1 == 0 or (ll1 > 0 and ll > ll1) Then
color = Red;
}
}
Else
{
if t == 1 then
{
TL_SetEnd(tl,hd,ht,hh);
TL_SetBegin(tl1,hd,ht,hh);
TL_SetEnd(tl11,Sdate[1],Stime[1],hh1);
Text_SetString(tx1,NumToStr(hh,2)+NewLine+"+"+NumToStr(abs(hh-ll)/PriceScale,0));
Text_SetLocation(tx1,sDate,sTime,hh);
if (hh1 > 0 and hh > hh1) Then
color = Red;
}
if t == -1 then
{
TL_SetEnd(tl,ld,lt,ll);
TL_SetBegin(tl2,ld,lt,ll);
TL_SetEnd(tl22,Sdate[1],Stime[1],ll1);
Text_SetString(tx2,NumToStr(ll,2)+NewLine+"-"+NumToStr(abs(hh-ll)/PriceScale,0));
Text_SetLocation(tx2,sDate,sTime,ll);
if (ll1 > 0 and ll < ll1) Then
color = Blue;
}
}
TL_SetEnd(tl1,NextBarSdate,NextBarStime,hh);
TL_SetEnd(tl2,NextBarSdate,NextBarStime,ll);
TL_SetColor(tl,color);
TL_SetSize(tl,2) ;
* 항상 많은 도움 고맙습니다.
2025-01-05
557
글번호 186886
지표
답변완료
array함수를 이용한 지표 만드는데 벽에 부딪쳤네요.
// 고점, 저점, 피보나치 레벨 계산
HighQ = Highest(C, Period);
LowQ = Lowest(C, Period);
Range = HighQ - LowQ;
// 피보나치 레벨 (절대값)
FiboLevels = Range * array.from(0.236, 0.382, 0.5, 0.618, 0.786);
// 볼린저 밴드 계산
UpperBand = avg(C, Period) + K * STDEV(C, Period);
LowerBand = avg(C, Period) - K * STDEV(C, Period);
// 현재 주가와 가장 가까운 피보나치 레벨 찾기
NearestFiboLevel = array.min(array.from(abs(C - FiboLevels)));
NearestFiboIndex = array.indexOf(NearestFiboLevel, array.from(abs(C - FiboLevels)));
// 현재 주가의 상대적 위치 (0~100)
CurrentPosition = (C - (LowQ + NearestFiboLevels[NearestFiboIndex])) / Range * 100;
위와같은 지표를 만들고 있습니다.
array.from과
array.min과
특히
array.indexOf()함수는 예스에 맞게 어떻게 고쳐야 하나요?
2025-01-05
500
글번호 186879
지표