커뮤니티
지표문의
1.아래지표를 해외 선물에 적용하니 표시가 안돼요
수정 좀 해주세요
.##+++++++++++++++++++++++#+++++++++++++++++++++++#
#+++++++++++++++++++++++#+++++++++++++++++++++++#
##===================#
Vars:j(0),행번호(0),단위가격(0),추가행(0),알파벳(0),최대개수(0),총개수(0),봉개수(0),
추정거래량(0),cnt(0),중앙가격(0),중심행(0),중심가격(0);
Arrays:가격대[100](0),거래량[100](0),개수[100](0),프로파일[100](0);
단위가격 = 2 * PriceScale;
if Date <> Date[1] then
begin
for 행번호 = 0 to 99 begin
거래량[행번호]=0;
개수[행번호]=0;
프로파일[행번호]=0;
end;
최대개수=0;
총개수=0;
가격대[0]=High+단위가격*20;
for 행번호=0 to 98
가격대[행번호+1]=가격대[행번호]-단위가격;
end;
if 가격대[0] <= High then
begin
추가행 = Ceiling((High-가격대[0])/단위가격)+5;
if 추가행>50 then
추가행=50;
for 행번호=(99-추가행) downto 0 begin
가격대[행번호+추가행]=가격대[행번호];
거래량[행번호+추가행]=거래량[행번호];
개수[행번호+추가행]=개수[행번호];
프로파일[행번호+추가행]=프로파일[행번호];
end;
가격대[0]=가격대[0]+단위가격*추가행;
for 행번호=0 to 추가행-1
가격대[행번호+1]=가격대[행번호]-단위가격;
for 행번호=0 to 추가행 begin
거래량[행번호]=0;
개수[행번호]=0;
프로파일[행번호]=0;
end;
중심행=중심행+추가행;
end;
cnt=0;
for 행번호=0 to 99 begin
if Low<=가격대[행번호] and 가격대[행번호]<=High then
cnt=cnt+1;
end;
if cnt>0 then
추정거래량=Volume/cnt;
else
추정거래량=0;
for 행번호=0 to 99 begin
if Low<=가격대[행번호] and 가격대[행번호]<=High then begin
거래량[행번호]=거래량[행번호]+추정거래량;
개수[행번호]=개수[행번호]+1;
if 개수[행번호]>최대개수 then begin
최대개수=개수[행번호];
중심행=행번호;
end
else
if 개수[행번호]=최대개수 then begin
if 거래량[행번호]>거래량[중심행] then
중심행=행번호;
end;
end;
end;
중심가격=가격대[중심행];
Var62 =(max(high - low, abs(high - close[1]), abs(low - close[1])));
input : period1(10),multiplier1(3);
input : period2(20),multiplier2(2);
input : period3(30),multiplier3(3);
var : src(0);
var : AtrV1(0),upperBand1(0),lowerBand1(0), prevLowerBand1(0), prevUpperBand1(0);
var : prevSuperTrend1(0), superTrend1(C), direction1(0),alpha1(0),source1(0);
var : AtrV2(0),upperBand2(0),lowerBand2(0), prevLowerBand2(0), prevUpperBand2(0);
var : prevSuperTrend2(0), superTrend2(C), direction2(0),alpha2(0),source2(0);
var : AtrV3(0),upperBand3(0),lowerBand3(0), prevLowerBand3(0), prevUpperBand3(0);
var : prevSuperTrend3(0), superTrend3(C), direction3(0),alpha3(0),source3(0);
var : TL1(0),TL2(0),TL3(0),TL(0),box1(0),box2(0);
src = 중심가격;
//src = (H+L)/2;
if CurrentBar > 1 Then
{
alpha1 = 1 / period1;
source1 = Var62;
ATrV1 = alpha1 * source1 + (1 - alpha1) * ATrV1[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand1 = src + multiplier1 * AtrV1;
lowerBand1 = src - multiplier1 * AtrV1;
prevLowerBand1 = lowerBand1[1];
prevUpperBand1 = upperBand1[1];
if lowerBand1 > prevLowerBand1 or close[1] < prevLowerBand1 Then
lowerBand1 = lowerBand1;
Else
lowerBand1 = prevLowerBand1;
if upperBand1 < prevUpperBand1 or close[1] > prevUpperBand1 Then
upperBand1 = upperBand1;
Else
upperBand1 = prevUpperBand1;
if 중심가격 > UpperBand1 Then
direction1 = 1;
if 중심가격 < LowerBand1 Then
direction1 = -1;
if direction1 == 1 Then
supertrend1 = lowerband1;
Else
supertrend1 = upperband1;
alpha2 = 1 / period2;
source2 = Var62;
ATrV2 = alpha2 * source2 + (1 - alpha2) * ATrV2[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand2 = src + multiplier2 * AtrV2;
lowerBand2 = src - multiplier2 * AtrV2;
prevLowerBand2 = lowerBand2[1];
prevUpperBand2 = upperBand2[1];
if lowerBand2 > prevLowerBand2 or close[1] < prevLowerBand2 Then
lowerBand2 = lowerBand2;
Else
lowerBand2 = prevLowerBand2;
if upperBand2 < prevUpperBand2 or close[1] > prevUpperBand2 Then
upperBand2 = upperBand2;
Else
upperBand2 = prevUpperBand2;
if 중심가격 > UpperBand2 Then
direction2 = 1;
if 중심가격 < LowerBand2 Then
direction2 = -1;
if direction2 == 1 Then
supertrend2 = lowerband2;
Else
supertrend2 = upperband2;
alpha3 = 1 / period3;
source3 = Var62;
ATrV3 = alpha3 * source3 + (1 - alpha3) * ATrV3[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand3 = src + multiplier3 * AtrV3;
lowerBand3 = src - multiplier3 * AtrV3;
prevLowerBand3 = lowerBand3[1];
prevUpperBand3 = upperBand3[1];
if lowerBand3 > prevLowerBand3 or close[1] < prevLowerBand3 Then
lowerBand3 = lowerBand3;
Else
lowerBand3 = prevLowerBand3;
if upperBand3 < prevUpperBand3 or close[1] > prevUpperBand3 Then
upperBand3 = upperBand3;
Else
upperBand3 = prevUpperBand3;
if C > UpperBand3 Then
direction3 = 1;
if C < LowerBand3 Then
direction3 = -1;
if direction3 == 1 Then
supertrend3 = lowerband3;
Else
supertrend3 = upperband3;
if C < superTrend1 Then
{
Plot1(superTrend1,"매수1", rgb(247, 75, 201), 0, 1);
NoPlot(2);
}
Else
{
Plot2(superTrend1,"매도1", Indigo, 0, 1);
NoPlot(1);
}
if C < superTrend2 Then
{
Plot3(superTrend2,"매수2", rgb(247, 75, 201), 0, 2);
NoPlot(4);
}
Else
{
Plot4(superTrend2,"매도2", Indigo, 0, 2);
NoPlot(3);
}
if C < superTrend3 Then
{
Plot5(superTrend3,"매수3", rgb(247, 75, 201), 0, 3);
NoPlot(6);
}
Else
{
Plot6(superTrend3,"매도3", Indigo, 0, 3);
NoPlot(5);
}
}
var : box(0),tx(0);
if CrossUp(c,supertrend2) Then
{
TL = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL,rgb(255, 215, 0));
TL_SetSize(TL,1);
TL_SetStyle(TL,2);
TX = Text_New(sDate,sTime,L,"▲");
Text_SetStyle(tx,2,0);
Text_SetSize(tx,20);
Text_SetColor(tx,Red);
}
Else if CrossDown(c,supertrend2) Then
{
TL = TL_New(sDate,sTime,0,sDate,sTime,999999999);
TL_SetColor(TL, rgb(193, 216, 251));
TL_SetSize(TL,2);
TL_SetStyle(TL,2);
TX = Text_New(sDate,sTime,H,"▼");
Text_SetStyle(tx,2,1);
Text_SetSize(tx,20);
Text_SetColor(tx,Blue);
}
Else
{
if var4 > 0 and Index < var4+5 Then
{
TL_SetEnd(TL1,NextBarSdate,NextBarStime,var1);
TL_SetEnd(TL2,NextBarSdate,NextBarStime,var2);
TL_SetEnd(TL3,NextBarSdate,NextBarStime,var3);
Box_SetEnd(box1,NextBarSdate,NextBarStime,var2);
Box_SetEnd(box2,NextBarSdate,NextBarStime,var3);
}
}
그럼 수고하세요
답변 1
예스스탁 예스스탁 답변
2026-07-13 12:59:22