| Q&A 게시판 | HOME > Q&A 게시판 |
작성자 :
풀잎향기
작성일 : 2021-12-17 19:41:05
조회수 : 596
ATR을 이용한 추적 청산 지표를 자동매매 시스템 식으로 변환?
게시글에 올라온 아래 지표를 이용하여 자동매매에 활용하고 싶습니다.
가능하다면 시스템 식으로 부탁 드립니다.
input : factor(3), AtrPeriod(10);
var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0);
var : prevSuperTrend(0), superTrend(0), direction(0),alpha(0),source(0);
if CurrentBar > 1 Then {
src = (H+L)/2;
// ATR계산(ATR 계산시 지수가중이동평균(rma)이용)
alpha = 1 / AtrPeriod ;
source = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV = alpha * source + (1 - alpha) * ATrV[1];
upperBand = src + factor * AtrV;
lowerBand = src - factor * AtrV;
prevLowerBand = lowerBand[1];
prevUpperBand = upperBand[1];
if lowerBand > prevLowerBand or close[1] < prevLowerBand Then
lowerBand = lowerBand;
Else
lowerBand = prevLowerBand;
if upperBand < prevUpperBand or close[1] > prevUpperBand Then
upperBand = upperBand;
Else
upperBand = prevUpperBand;
prevSuperTrend = superTrend[1];
if prevSuperTrend == prevUpperBand Then {
if close > upperBand Then
direction = -1;
Else
direction = 1;
}
Else {
if close < lowerBand Then
direction = 1;
Else
direction = -1;
}
if direction == -1 Then
superTrend = lowerBand;
Else
superTrend = upperBand;
}
Plot1(C,"종가");
plot2(superTrend,"superTrend",IFf(C > superTrend, green, REd), 0, 1);
가능하다면 시스템 식으로 부탁 드립니다.
input : factor(3), AtrPeriod(10);
var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0);
var : prevSuperTrend(0), superTrend(0), direction(0),alpha(0),source(0);
if CurrentBar > 1 Then {
src = (H+L)/2;
// ATR계산(ATR 계산시 지수가중이동평균(rma)이용)
alpha = 1 / AtrPeriod ;
source = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV = alpha * source + (1 - alpha) * ATrV[1];
upperBand = src + factor * AtrV;
lowerBand = src - factor * AtrV;
prevLowerBand = lowerBand[1];
prevUpperBand = upperBand[1];
if lowerBand > prevLowerBand or close[1] < prevLowerBand Then
lowerBand = lowerBand;
Else
lowerBand = prevLowerBand;
if upperBand < prevUpperBand or close[1] > prevUpperBand Then
upperBand = upperBand;
Else
upperBand = prevUpperBand;
prevSuperTrend = superTrend[1];
if prevSuperTrend == prevUpperBand Then {
if close > upperBand Then
direction = -1;
Else
direction = 1;
}
Else {
if close < lowerBand Then
direction = 1;
Else
direction = -1;
}
if direction == -1 Then
superTrend = lowerBand;
Else
superTrend = upperBand;
}
Plot1(C,"종가");
plot2(superTrend,"superTrend",IFf(C > superTrend, green, REd), 0, 1);
