커뮤니티

문의 드립니다.

프로필 이미지
신대륙발견
2025-10-22 23:47:09
74
글번호 227200
답변완료

수식1

input : length(22);
input : mult(3.0);
input : useClose(1);#1:종가, 0:고가/저가
var : alpha(0),atrv(0),a(0);
var : longStop(0),longStopPrev(0),shortStop(0),shortStopPrev(0),dir(1);
var : Buysignal(False),Sellsignal(False),tx(0);

alpha = 1 / length ;
atrv =  IFf(IsNan(ATRV[1]) == true, ma(TrueRange,length) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATRV[1])==true,0,ATRV[1]));
a = mult * atrv;


longStop = IFF(useClose == 1,highest(close, length), highest(H,length)) - a;
longStopPrev = iff(isnan(longStop[1])==true, longStop,longStop[1]);
longStop = iff(close[1] > longStopPrev , max(longStop, longStopPrev) , longStop);

shortStop = IFF(useClose == 1,lowest(close, length), lowest(L,length)) + a;
shortStopPrev = iff(IsNan(shortStop[1])==true, shortStop[1], shortStop);
shortStop = iff(close[1] < shortStopPrev , min(shortStop, shortStopPrev) , shortStop);

dir = iff(close > shortStopPrev , 1 , iff(close < longStopPrev , -1 , dir));

buySignal = dir == 1 and dir[1] == -1;
sellSignal = dir == -1 and dir[1] == 1;

if dir == 1 Then
{
	Plot1(longStop,"LongStop",Green);
	NoPlot(2);
}
else
{
	NoPlot(1);
	Plot2(shortStop,"ShortStop",Red);
}


if buySignal == true then
{
	tx = Text_New(sDate,sTime,longStop,"▲");
	Text_SetStyle(tx,2,0);
	Text_SetColor(tx,Green);
}

if SellSignal == true then
{
	tx = Text_New(sDate,sTime,shortStop,"▼");
	Text_SetStyle(tx,2,1);
	Text_SetColor(tx,Red);
}


수식2

input : length(20);
var : vwma(0);

vwma = ma(close * volume, length) / ma(volume, length);

plot1(vwma,"vwma",blue); 


수식1이 수식2를 크로스하면 매수/매도 신호가 나오게 해주세요.
vwma
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-10-23 12:36:39

안녕하세요 예스스탁입니다. input : length(22); input : mult(3.0); input : useClose(1);#1:종가, 0:고가/저가 var : alpha(0),atrv(0),a(0); var : longStop(0),longStopPrev(0),shortStop(0),shortStopPrev(0),dir(1); var : Buysignal(False),Sellsignal(False),tx(0); alpha = 1 / length ; atrv = IFf(IsNan(ATRV[1]) == true, ma(TrueRange,length) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATRV[1])==true,0,ATRV[1])); a = mult * atrv; longStop = IFF(useClose == 1,highest(close, length), highest(H,length)) - a; longStopPrev = iff(isnan(longStop[1])==true, longStop,longStop[1]); longStop = iff(close[1] > longStopPrev , max(longStop, longStopPrev) , longStop); shortStop = IFF(useClose == 1,lowest(close, length), lowest(L,length)) + a; shortStopPrev = iff(IsNan(shortStop[1])==true, shortStop[1], shortStop); shortStop = iff(close[1] < shortStopPrev , min(shortStop, shortStopPrev) , shortStop); dir = iff(close > shortStopPrev , 1 , iff(close < longStopPrev , -1 , dir)); buySignal = dir == 1 and dir[1] == -1; sellSignal = dir == -1 and dir[1] == 1; if dir == 1 Then { var1 = longStop; } else { var1 = shortStop; } input : length2(20); var : vwma(0); vwma = ma(close * volume, length2) / ma(volume, length2); if CrossUp(var1,vwma) Then Buy(); if CrossDown(var1,vwma) Then Sell(); 즐거운 하루되세요