예스스탁
예스스탁 답변
2024-12-09 16:34:26
안녕하세요
예스스탁입니다.
Input : Price(close),
시뮬레이션 차트에는 변수최적화 기능때문에 외부변수가 모두 숫자형이어야 합니다.
문자로 지정되어서 신호가 발생하지 않았습니다
price는 내부변수로 변경했습니다.
Input :length(120);
var : tp(0),wtp(0), sum_wtp(0), sum_vol(0),VWAP(0);
tp = (close + high + low) / 3;
wtp = tp * Volume;
sum_wtp = AccumN(wtp,length);
sum_vol =AccumN(Volume,length);
VWAP = sum_wtp / sum_vol;
//AdapMA//
Input : Momentum_Value(10);
Var : ER(0), Direction(0), Volatil(0), Fastest(0.6667), Slowest(0.0645), Constant(0), Smooth(0);
var : Price(0),AdapMA(0);
Price = c;
ER = (Abs(Close[0]-Close[Momentum_Value]))/(AccumN(Abs(Close[0]-Close[1]),Momentum_Value));
Smooth = ER * (Fastest - Slowest) + Slowest;
Constant = Power(smooth,2);
AdapMA = iff(Currentbar <= Momentum_Value, Price, AdapMA +Constant * (Price - AdapMA));
//진입
if MarketPosition == 0 and AdapMA > VWAP Then
Buy();
if MarketPosition == 0 and CrossUP(AdapMA,VWAP) Then
Buy();
// 청산
if MarketPosition == 1 and AdapMA < VWAP Then
ExitLong();
즐거운 하루되세요
> penfold 님이 쓴 글입니다.
> 제목 : 수식이 작동하지 않아 검토 부탁드립니다.
> 안녕하세요, 수식 작성에 도움 부탁드립니다.
아래 식에서 사용된 2개 개념(VWAP, AdapMA)은 제가 지표로서 잘 사용하고 있는데,
이 2개 지표를 서로 교차할 때 진입과 청산을 하는 시스템식을 작성했으나 시뮬레이션 차트에 적용해보았을 때에는 진입과 청산이 이루어지지않는 것으로 나옵니다.
(지표 2개를 적용해놓고 육안으로 살폈을 때는, 분명 교차지점이 여러번 나타납니다.)
(지표 수식과 아래 수식간의 차이는 Plot1(VWAP), Plot1(AdapMA)가 수식 맨 아래에 적혀있다는 것 외에는 없음)
시스템이 어떤 부분에서 작동하지않는 것인지,, 수식 보완이 필요한 부분에 대해 검토 부탁드리겠습니다.
+ 아래 수식을 시뮬레이션차트가 아닌, 전략실행차트에 적용시켜보았더니, 여기서는 진입청산이 이루어집니다. 시뮬레이션 차트에서만 작동하지않는 상황입니다. 확인부탁드립니다.
(적용 종목 : [NG.1] , 60분봉, "한투" 예스트레이더 사용)
//VWAP//
Input :length(120);
var : tp(0),wtp(0), sum_wtp(0), sum_vol(0),VWAP(0);
tp = (close + high + low) / 3;
wtp = tp * Volume;
sum_wtp = AccumN(wtp,length);
sum_vol =AccumN(Volume,length);
VWAP = sum_wtp / sum_vol;
//AdapMA//
Input : Price(close), Momentum_Value(10);
Var : ER(0), Direction(0), Volatil(0), Fastest(0.6667), Slowest(0.0645), Constant(0), Smooth(0);
var : AdapMA(0);
ER = (Abs(Close[0]-Close[Momentum_Value]))/(AccumN(Abs(Close[0]-Close[1]),Momentum_Value));
Smooth = ER * (Fastest - Slowest) + Slowest;
Constant = Power(smooth,2);
AdapMA = iff(Currentbar <= Momentum_Value, Price, AdapMA +Constant * (Price - AdapMA));
//진입
if MarketPosition == 0 and AdapMA > VWAP Then
Buy();
if MarketPosition == 0 and CrossUP(AdapMA,VWAP) Then
Buy();
// 청산
if MarketPosition == 1 and AdapMA < VWAP Then
ExitLong();