예스스탁
예스스탁 답변
2025-08-25 12:25:48
안녕하세요
예스스탁입니다.
매도와 매도청산만 하는 경우이면 sell과 exitshort함수를 이용하셔야 합니다.
input : factor(3), AtrPeriod(14),P1(12),P2(26);
var : src(0), AtrV(0), upperBand(0), lowerBand(0), prevLowerBand(0), prevUpperBand(0);
var : prevSuperTrend(0), superTrend(C), direction(0), alpha(0), source(0);
var : E1(0),E2(0);
if CurrentBar > 1 Then {
src = (H+L)/2;
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;
if C > UpperBand Then
direction = 1;
if C < LowerBand Then
direction = -1;
if direction == 1 Then
supertrend = lowerband;
Else
supertrend = upperband;
}
E1 = Ema(C,P1);
E2 = Ema(C,P2);
# 매도 진입 (숏 포지션 시작)
Condition1 = C < lowerBand and E1 < E2;
Condition2 = C > upperBand and E1 > E2;
if Condition1 == true and Condition1[1] == False Then
Sell("ShortEntry");
# 매도 청산 (숏 포지션 종료)
if Condition2 == true and Condition2[1] == False Then
ExitShort("ShortExit");
즐거운 하루되세요
> 최태수 님이 쓴 글입니다.
> 제목 : 안녕하세요. 코딩 부탁드립니다.
> 안녕하세요 담당자님.
항상 고생 많으십니다.
기존에 있던 슈퍼트렌드 매도 전용 코딩에 12,26 ema 크로스 전략을 추가 하고 싶어 문의 남깁니다.
동시에 신호가 나야지만 진입하는거 말고 순서 상관없이 두 신호가 나왔을때 진입, 청산을 하고싶습니다!
진입: 슈퍼트렌드 매도신호 + 12,26 ema 가 데드크로스 날때
청산: 슈퍼트렌드 매수신호 + 12,26 ema 가 골든크로스 날때
ex1) 12,26 ema가 데드크로스 후 슈퍼트렌드에서 매도 신호가 나오면 매도 진입
ex2) 슈퍼트렌드에서 매도 신호가 나오고 12,26 ema가 데드크로스 하면 매도 진입
아래는 기존에 답변 해주셨던 슈퍼트렌드 코딩 남겨드립니다!
---------------------------------------------------------------------------------
input : factor(3), AtrPeriod(14);
var : src(0), AtrV(0), upperBand(0), lowerBand(0), prevLowerBand(0), prevUpperBand(0);
var : prevSuperTrend(0), superTrend(C), direction(0), alpha(0), source(0);
if CurrentBar > 1 Then {
src = (H+L)/2;
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;
if C > UpperBand Then
direction = 1;
if C < LowerBand Then
direction = -1;
if direction == 1 Then
supertrend = lowerband;
Else
supertrend = upperband;
}
# 매도 진입 (숏 포지션 시작)
if CrossDown(C, lowerBand) Then
Sell("ShortEntry");
# 매도 청산 (숏 포지션 종료)
if CrossUp(C, upperBand) Then
Buy("ShortExit");