커뮤니티

글번호 228232 문의입니다

프로필 이미지
knoll
2025-11-23 10:32:00
98
글번호 228326
답변완료

안녕하세요 .

답변 2번 을 시스템(전략)으로 만들어 주시면 감사하겠습니다. 아래 -- shortSignal 의 정의가 있어야 될것 같긴한대데요.....


2

input : emaFastLen(8);

input : emaSlowLen(21);

input : atrPeriod(7);

input : atrMult(1.8);

input : squeezeLen(20);

input : showVWAP(true);

var : Emafast(0),Emaslow(0),Golden(False),death(False);

var : src(0), alpha(0),ATRV(0),upperBand(0),lowerBand(0),direction(0),SuperTrend(C);

emaFast = ema(close, emaFastLen);

emaSlow = ema(close, emaSlowLen);

golden = CrossUp(emaFast, emaSlow);

death = CrossDown(emaFast, emaSlow);

if CurrentBar > 1 Then

{

src = (H+L)/2;

alpha = 1 / atrperiod ;

ATRV = IFf(IsNan(ATRV[1]) == true, ma(TrueRange,atrperiod) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATRV[1])==true,0,ATRV[1]));

upperBand = src + atrMult * AtrV;

lowerBand = src - atrMult * AtrV;

if lowerBand > lowerBand[1] or close[1] < lowerBand[1] Then

lowerBand = lowerBand;

Else

lowerBand = lowerBand[1];

if upperBand < upperBand[1] or close[1] > upperBand[1] Then

upperBand = upperBand;

Else

upperBand = upperBand[1];

if C > UpperBand Then

direction = 1;

if C < LowerBand Then

direction = -1;

if direction == 1 Then

SuperTrend = lowerband;

Else

SuperTrend = upperband;

}

var : basis_sqz(0),dev_sqz(0),kcUpper(0),kcLower(0);

var : squeezeOn(False),squeezeOff(False),mom(0),momCol(0),volSurge(False);

basis_sqz = ma(close, squeezeLen);

dev_sqz = std(close, squeezeLen);

kcUpper = basis_sqz + 1.5 * dev_sqz;

kcLower = basis_sqz - 1.5 * dev_sqz;

squeezeOn = (kcLower > supertrend) or (kcUpper < supertrend);

squeezeOff = squeezeOn == False;

mom = close - (basis_sqz + kcUpper + kcLower) / 2;

momCol = iff(mom > 0 , IFF(mom > mom[1], lime , green) , IFf(mom < mom[1], red , maroon));

volSurge = volume > ma(volume, 20) * 2;

var : hlc3(0),sum1(0),sum2(0),aboveVWAP(False),vwapVal(0),longSignal(False);

hlc3 = (h+l+c)/3;

if Bdate != Bdate[1] Then

{

sum1 = 0;

sum2 = 0;

}

sum1 = sum1 + (hlc3*v);

sum2 = sum2 + v;

vwapVal = sum1/sum2;

aboveVWAP = close > vwapVal;

longSignal = golden and direction < 0 and squeezeOff and volSurge and aboveVWAP;

if longSignal == true Then

Find(1);


시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-11-24 13:16:04

안녕하세요 예스스탁입니다. longSignal = golden and direction < 0 and squeezeOff and volSurge and aboveVWAP; 매도에 대한 조건내용이 없어 기본내용을 반대로 작성해 드립니다. 다만 squeezeOff and volSurge 조건은 변경할 내용이 아니므로 위 조건 제외하고 반대로 작성해 드립니다. input : emaFastLen(8); input : emaSlowLen(21); input : atrPeriod(7); input : atrMult(1.8); input : squeezeLen(20); input : showVWAP(true); var : Emafast(0),Emaslow(0),Golden(False),death(False); var : src(0), alpha(0),ATRV(0),upperBand(0),lowerBand(0),direction(0),SuperTrend(C); emaFast = ema(close, emaFastLen); emaSlow = ema(close, emaSlowLen); golden = CrossUp(emaFast, emaSlow); death = CrossDown(emaFast, emaSlow); if CurrentBar > 1 Then { src = (H+L)/2; alpha = 1 / atrperiod ; ATRV = IFf(IsNan(ATRV[1]) == true, ma(TrueRange,atrperiod) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATRV[1])==true,0,ATRV[1])); upperBand = src + atrMult * AtrV; lowerBand = src - atrMult * AtrV; if lowerBand > lowerBand[1] or close[1] < lowerBand[1] Then lowerBand = lowerBand; Else lowerBand = lowerBand[1]; if upperBand < upperBand[1] or close[1] > upperBand[1] Then upperBand = upperBand; Else upperBand = upperBand[1]; if C > UpperBand Then direction = 1; if C < LowerBand Then direction = -1; if direction == 1 Then SuperTrend = lowerband; Else SuperTrend = upperband; } var : basis_sqz(0),dev_sqz(0),kcUpper(0),kcLower(0); var : squeezeOn(False),squeezeOff(False),mom(0),momCol(0),volSurge(False); basis_sqz = ma(close, squeezeLen); dev_sqz = std(close, squeezeLen); kcUpper = basis_sqz + 1.5 * dev_sqz; kcLower = basis_sqz - 1.5 * dev_sqz; squeezeOn = (kcLower > supertrend) or (kcUpper < supertrend); squeezeOff = squeezeOn == False; mom = close - (basis_sqz + kcUpper + kcLower) / 2; momCol = iff(mom > 0 , IFF(mom > mom[1], lime , green) , IFf(mom < mom[1], red , maroon)); volSurge = volume > ma(volume, 20) * 2; var : hlc3(0),sum1(0),sum2(0),aboveVWAP(False),vwapVal(0),longSignal(False),shortSignal(False); hlc3 = (h+l+c)/3; if Bdate != Bdate[1] Then { sum1 = 0; sum2 = 0; } sum1 = sum1 + (hlc3*v); sum2 = sum2 + v; vwapVal = sum1/sum2; aboveVWAP = close > vwapVal; longSignal = golden and direction < 0 and squeezeOff and volSurge and aboveVWAP; ShortSignal = death and direction > 0 and squeezeOff and volSurge and close < vwapVal; if longSignal == true Then Buy(); if shortSignal == true Then Sell(); 즐거운 하루되세요