예스스탁
예스스탁 답변
2025-02-25 11:27:15
안녕하세요
예스스탁입니다.
1
차트에 적용된 지표와 시스템은 연동되지 않습니다.
시스템은 시스템식 안에 계산식이 있어야 합니다.
2
시장가와 같은 주문가격과 진입주문 지연시간은 설정창에서 지정하셔야 합니다.
수식안에서 설정이 가능하지 않습니다.
3
input : period1(10),multiplier1(2);
input : period2(20),multiplier2(2);
input : period3(60),multiplier3(2);
var : src(0);
var : AtrV1(0),upperBand1(0),lowerBand1(0), prevLowerBand1(0), prevUpperBand1(0);
var : prevSuperTrend1(0), direction1(0),alpha1(0),source1(0),SuperTrend1(C);
var : AtrV2(0),upperBand2(0),lowerBand2(0), prevLowerBand2(0), prevUpperBand2(0);
var : prevSuperTrend2(0), direction2(0),alpha2(0),source2(0),SuperTrend2(C);
var : AtrV3(0),upperBand3(0),lowerBand3(0), prevLowerBand3(0), prevUpperBand3(0);
var : prevSuperTrend3(0), direction3(0),alpha3(0),source3(0),SuperTrend3(C);
src = (H+L)/2;
if CurrentBar > 1 Then
{
alpha1 = 1 / period1 ;
source1 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV1 = alpha1 * source1 + (1 - alpha1) * ATrV1[1]; //지수가중이평방식
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 C > UpperBand1 Then
direction1 = 1;
if C < LowerBand1 Then
direction1 = -1;
if direction1 == 1 Then
SuperTrend1 = lowerband1;
Else
SuperTrend1 = upperband1;
alpha2 = 1 / period2 ;
source2 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV2 = alpha2 * source2 + (1 - alpha2) * ATrV2[1]; //지수가중이평방식
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 C > UpperBand2 Then
direction2 = 1;
if C < LowerBand2 Then
direction2 = -1;
if direction2 == 1 Then
SuperTrend2 = lowerband2;
Else
SuperTrend2 = upperband2;
alpha3 = 1 / period3 ;
source3 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV3 = alpha3 * source3 + (1 - alpha3) * ATrV3[1]; //지수가중이평방식
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;
Condition1 = direction1 == 1 and direction2 == 1 and direction3 == 1;
Condition2 = direction1 == -1 and direction2 == -1 and direction3 == -1;
if MarketPosition <= 0 and Condition1 == true and Condition1[1] == False Then
Buy("b");
if MarketPosition == 1 and Condition1 == False Then
ExitLong("bx");
if MarketPosition >= 0 and Condition2 == true and Condition2[1] == False Then
Sell("s");
if MarketPosition == -1 and Condition2 == False Then
ExitShort("sx");
}
즐거운 하루되세요
> 박부장 님이 쓴 글입니다.
> 제목 : 자동 수식문의
> SuperTrend 수식을 차트에 지표생성해 띄어놓은 상태입니다.
시스템 조건
수퍼트렌드 3개를 차트에 띄운후 각각 설정값이 다르게하여, 3개선 매수 일치시 시장가 매수
매수중, 선1개라도 불일치시(매도세) 청산후 대기
반대로 3개선 매도 일치시 시장가 매도 , 매도중 선1개라도 불일치(매수세) 청산후 대기
거래지연시간은 매수,매수청산,매도,매도청산 각각 3초 , 시장가 주문
각 SuperTrend 지표값은 직접넣을것이니 period multiplier 색표시만 부탁드려요
예)
SuperTrend 1 period() multiplier()
SuperTrend 2 period() multiplier()
SuperTrend 3 period() multiplier()