예스스탁
예스스탁 답변
2022-11-22 15:36:40
안녕하세요
예스스탁입니다.
Input : shortPeriod(12), longPeriod(26), Vector(14), Period(9), n(50);
Var : MACDv(0,Data2), MACDsig(0,Data2), macdosc(0,data2), rsi_(0,Data1), rsi_signal(0,Data1) ;
input : period1(1);
var : haClose(0,Data1),haOpen(0,Data1),haHigh(0,Data1),haLow(0,Data1);
var : v11(0,data1),v12(0,Data12);
var : T(0,Data1),S(0,Data1);
if CurrentBar > 1 then
{
haClose = (Open+High+Low+Close)/4;
haOpen = (haOpen[1] + haClose[1])/2 ;
haHigh = Max(High, haOpen, haClose);
haLow = Min(Low, haOpen, haClose) ;
}
v11 = data1(ma(haClose,period1));
V12 = data1(ma(haOpen,period1));
rsi_ = data1(RSI(Period));
rsi_signal = data1(MA(RSI(Period), Vector));
MACDv = Data2(MACD(shortPeriod, longPeriod));
//MACDsig = Data2(ema(MACDv,Period));
MACDsig = Data2(ema(Data2(MACD(shortPeriod, longPeriod)),Period));
//macdosc = Data2(MACDv-ema(MACDv,Period));
macdosc = Data2(Data2(MACD(shortPeriod, longPeriod))-ema(Data2(MACD(shortPeriod, longPeriod)),Period));
//MessageLog("%f %f %f", rsi_, rsi_signal, macdosc);
if macdosc > 0 && rsi_ < n && CrossUp(rsi_,rsi_signal) Then
{
T = 1;
S = Index;
}
else if macdosc < 0 && rsi_ > n && crossdown(rsi_,rsi_signal) Then
{
T = -1;
S = Index;
}
if T == 1 and (macdosc < 0 or rsi_ > n or rsi_< rsi_signal) Then
T = 0;
if T == -1 and (macdosc > 0 or rsi_ < n or rsi_ > rsi_signal) Then
T = 0;
if T == 1 and Index <= S+N and v11 > v12 Then
Buy();
if T == -1 and Index <= S+N and v11 < v12 Then
Sell();
즐거운 하루되세요
> 흑수돌 님이 쓴 글입니다.
> 제목 : 수식 문의
> @@ 아래 @@ 는
data2의 조건이 만족된 상태에서
data1의 조건이 발생하면 신호가 나오는 수식입니다.
이에 조건을 추가하여
data1의 매수조건이 발생하고나서
그 조건이 그대로 유지되는 상태에서
n봉 기간 내에
-@@다음@@-의 지표가 양수 전환하면 매수
(아래의) data1의 매도 조건이 발생하고나서
그 조건이 그대로 유지되는 상태에서
n봉 기간 내에
@@다음@@-의 지표가 음수 전환하면 매도
하는 조건을 추가하고 싶습니다.
==@@ 다음 @@ =====================
input : period1(1),Period2(2),Period3(3),Period4(4),Period5(5);
var : haClose(0),haOpen(0),haHigh(0),haLow(0);
if CurrentBar > 1 then
{
haClose = (Open+High+Low+Close)/4;
haOpen = (haOpen[1] + haClose[1])/2 ;
haHigh = Max(High, haOpen, haClose);
haLow = Min(Low, haOpen, haClose) ;
}
var11 = ma(haClose,period1);
Var12 = ma(haOpen,period1);
var11 > var12 : 양수
var11 < var12 : 음수
===@@ 아래 @@ ====================
Input : shortPeriod(12), longPeriod(26), Vector(14), Period(9), n(50);
Var : MACDv(0), MACDsig(0), macdosc(0), rsi_(0), rsi_signal(0) ;
rsi_ = RSI(Period);
rsi_signal = MA(RSI(Period), Vector);
MACDv = Data2(MACD(shortPeriod, longPeriod));
//MACDsig = Data2(ema(MACDv,Period));
MACDsig = Data2(ema(Data2(MACD(shortPeriod, longPeriod)),Period));
//macdosc = Data2(MACDv-ema(MACDv,Period));
macdosc = Data2(Data2(MACD(shortPeriod, longPeriod))-ema(Data2(MACD(shortPeriod, longPeriod)),Period));
//MessageLog("%f %f %f", rsi_, rsi_signal, macdosc);
if macdosc > 0 && rsi_ < n && ( rsi_ 크로스업 rsi_signal ) Then
{
Buy();
}
else if macdosc < 0 && rsi_ > n && ( rsi_ 크로스다운 rsi_signal ) Then
{
Sell();
}