답변완료
변환 부탁 드립니다
안녕 하세요
아래 종목검색 수식에 해당일에 캔들 아래에 "신호표시" 부탁 드립니다.
- 노고에 감사 드립니다. -
input : a_buy(2),c_buy(1),a_sell(2),c_sell(1),signal_length(7),linreg_length(11);
var : ATR_BUY(0),NLOSS_BUY(0),TRAIL_BUY(0),ATR_SELL(0),NLOSS_SELL(0),TRAIL_SELL(0);
var : LINREG_CLOSE(0), SIGNAL_LINE(0);
ATR_BUY = ATR(c_buy);
NLOSS_BUY = a_buy * ATR_BUY;
TRAIL_BUY = iff(C > TRAIL_BUY[1] AND C[1] > TRAIL_BUY[1],
MAX(TRAIL_BUY[1], C - NLOSS_BUY),
iff(C < TRAIL_BUY[1] AND C[1] < TRAIL_BUY[1],
MIN(TRAIL_BUY[1], C + NLOSS_BUY),
iff(C > TRAIL_BUY[1], C - NLOSS_BUY, C + NLOSS_BUY)));
ATR_SELL = ATR(c_sell);
NLOSS_SELL = a_sell * ATR_SELL;
TRAIL_SELL = iff(C > TRAIL_SELL[1] AND C[1] > TRAIL_SELL[1],
MAX(TRAIL_SELL[1], C - NLOSS_SELL),
iff(C < TRAIL_SELL[1] AND C[1] < TRAIL_SELL[1],
MIN(TRAIL_SELL[1], C + NLOSS_SELL),
iff(C > TRAIL_SELL[1], C - NLOSS_SELL, C + NLOSS_SELL)));
LINREG_CLOSE = LRL(C, linreg_length);
SIGNAL_LINE = ma(LINREG_CLOSE, signal_length);
if C > SIGNAL_LINE AND CROSSUP(Ema(C, 1), SIGNAL_LINE) AND C>O Then
Find(1);
답변완료
수식 문의
안녕하세요?
매수신호가 발생한 봉의 종가를 p0로 기억합니다.
그 다음봉부터 종가가 p0 대비 몇 % 오르거나 내렸는지를 파란색으로 지표로 나타냅니다.
새롭게 매도신호가 나오기 전까지 계속 나타냅니다. 매도신호가 나오면 파란색 지표는 그리는 것을 멈춥니다.
매도신호가 나오면 매도신호가 발생한 봉의 종가를 q0로 기억합니다.
그 다음봉부터 종가가 q0 대비 몇 % 오르거나 내렸는지를 빨간색으로 지표로 나타냅니다.
새로 매수신호가 나오기 전까지 계속 나타냅니다. 새로 매수 신호가 뜨면 기존의 빨간색 지표는 그리는 것을 멈춥니다.
주의사항: 매수신호가 나온 후, 매도 신호가 아닌 매수신호가 또 나올 수 있습니다.
이 경우, 새로운 매수신호가 나온 것을 기준으로 합니다.
물론, 10일 연속 매수신호가 나올 수도 있는데, 이 경우도 마찬가지로 p0 값이 매일 바뀌면서 매일 새롭게 시작합니다.
테스트용으로:
MACDv = MACD(12,26);
MACDsig = ema(MACDv,9);
macdosc = MACDv-ema(MACDv,9);
매수신호 = MACDv > 0 && macdosc > macdosc[1];
매도신호 = MACDv < 0 && macdosc < macdosc[1];
감사합니다.
답변완료
수식확인 부탁드립니다
data2의 종가(C)가 supertrand 위에 있을때 ( superTrend < data2(C) )
Data1(CrossUP(value1, value2)) 조건 만족시 매수진입 수식입니다.
data2의 종가(C)가 supertrand 위에 있을때 ( superTrend < data2(C) )
제데로 작동되지 않습니다 수정 부탁드립니다.
input : starttime(91000),endtime(150000),XTime(151500);
var : Tcond(false,Data1);
if (sdate != sdate[1] and stime >= starttime) or
(sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then
{
Tcond = false;
}
# Data1
Input : shortPeriod(5), longPeriod(20);
value1 = ema(C, shortPeriod);
value2 = ema(C, longPeriod);
# Data2
input : ntime(5),factor(3), AtrPeriod(10);
var : zS1(0,Data2),zD1(0,Data2),zTM(0,Data2),zTF(0,Data2),zHH(0,Data2),zLL(0,Data2),zC1(0,Data2);
var : zsrc(0,Data2), AtrV(0,Data2),ATRv1(0,Data2),upperBand(0,Data2),lowerBand(0,Data2), prevLowerBand(0,Data2), prevUpperBand(0,Data2);
var : prevSuperTrend(0,Data2), superTrend(0,Data2), direction(0,Data2),alpha(0,Data2),source(0,Data2);
if data2(Bdate != Bdate[1]) Then
{
zS1 = data2(TimeToMinutes(stime));
zD1 = data2(sdate);
}
if zD1 > 0 then
{
if data2(sdate) == zD1 Then
zTM = data2(TimeToMinutes(stime))-zS1;
Else
zTM = data2(TimeToMinutes(stime))+1440-zS1;
zTF = zTM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and zTF < zTF[1]) or
(Bdate == Bdate[1] and ntime > 1 and zTM >= zTM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and zTM > zTM[1]) Then
{
zHH = data2(H);
zLL = data2(L);
zC1 = data2(C[1]);
ATRV1 = ATRV[1];
prevSuperTrend = superTrend[1];
prevLowerBand = lowerBand[1];
prevUpperBand = upperBand[1];
}
if data2(H) > zHH Then
zHH = data2(H);
if data2(L) < zLL Then
zLL = data2(L);
zsrc = (zHH+zLL)/2;
if zC1 > 0 Then
{
alpha = 1 / AtrPeriod ;
source = max(zHH - zLL, abs(zHH - zC1), abs(zLL - zC1));
ATrV = alpha * source + (1 - alpha) * ATrV1;
upperBand = zsrc + factor * AtrV;
lowerBand = zsrc - factor * AtrV;
if lowerBand > prevLowerBand or zC1 < prevLowerBand Then
lowerBand = lowerBand;
Else
lowerBand = prevLowerBand;
if upperBand < prevUpperBand or zC1 > prevUpperBand Then
upperBand = upperBand;
Else
upperBand = prevUpperBand;
if prevSuperTrend == prevUpperBand Then
{
if C > upperBand Then
direction = -1;
Else
direction = 1;
}
Else
{
if C < lowerBand Then
direction = 1;
Else
direction = -1;
}
if direction == -1 Then
superTrend = lowerBand;
Else
superTrend = upperBand;
}
}
# 매수
If superTrend < data2(C) and CrossUP(value1, value2) Then
{
Buy();
}
# 매수청산
If CrossDown(value1, value2) Then
{
Exitlong();
}
SetStopEndofday(151500);