답변완료
부탁드립니다.
변형 부탁 드립니다.
price = input(hl2, "Price")
colorNormLength = input(3, "colorNormLength", input.integer)
dpoLength = input(13, "dpoLength", input.integer)
moboDisplace = input(0, "moboDisplace", input.integer)
moboLength = input(10, "moboLength", input.integer)
numDevDn = input(-0.8, "numDevDn", input.float)
numDevUp = input(0.8, "numDevUp", input.float)
coloredMobo = input(true, "coloredMobo")
coloredFill = input(true, "coloredFill")
breakArrows = input(true, "breakArrows")
moboShowMid = input(true, "moboShowMid")
//def DPO = price - Average(price[DPO_length / 2 + 1], DPO_length);
xsma = sma(price[dpoLength / 2 + 1], dpoLength)
//xsma = sma(price, dpoLength)
DPO = price - xsma
Midline = sma(DPO, moboLength)
sDev = stdev(DPO, moboLength)
LowerBand = Midline + numDevDn * sDev
UpperBand = Midline + numDevUp * sDev
plot(DPO, color=color.yellow,linewidth=2)
plot(Midline, color=Midline > Midline[1] ? color.lime : color.red,linewidth=2)
Upper = plot(UpperBand, color=color.black,linewidth=1)
Lower = plot(LowerBand, color=color.black,linewidth=1)
plot(0, color=color.white,linewidth=1)
Signal1 = DPO > UpperBand and DPO[1] < UpperBand[1]
Signal2 = DPO < LowerBand and DPO[1] > LowerBand[1]
wasUp = 1
wasDn = 1
wasUp := Signal1 ? 1 : (Signal2 ? 0 : nz(wasUp[1]))
wasDn := Signal2 ? 1 : (Signal1 ? 0 : nz(wasDn[1]))
//plotshape(Signal1 and wasDn[1] ? UpperBand : na, style=shape.arrowup, location=location.absolute, size=size.normal, color=color.red)
//plotshape(Signal2 and wasUp[1] ? LowerBand : na, style=shape.arrowdown, location=location.absolute, size=size.normal, color=color.green)
plotshape(Signal1 and wasDn[1] ? UpperBand : na, style=shape.labelup, location=location.absolute, size=size.normal, color=color.green, text="Buy",textcolor=color.white)
plotshape(Signal2 and wasUp[1] ? LowerBand : na, style=shape.labeldown, location=location.absolute, size=size.normal, color=color.red, text="Sell",textcolor=color.white)
fill(Upper, Lower, color=color.purple)
alertcondition(Signal1 and wasDn[1], "Break Out Arrow", "Break Out Arrow")
alertcondition(Signal2 and wasUp[1], "Break Down Arrow", "Break Down Arrow")
2023-08-28
959
글번호 171878
지표
답변완료
연장선 좀 부탁 드립니다.
* 안녕하세요^^ 항상 많은 도움에 고맙습니다.
* 요청 사항1 ▶ 아래 수식에서 우측선 연장 부탁 드립니다.
즉 다음 신호 나올때 까지 우측선 부탁 드립니다.(bb는 삭제)
기존왼쪽선은 그대로 두고
다음 고가선 혹은 저가선이 발생할때 까지 우측선 연장
// 아래방식으로 Else 를 써 보았는데 수직선이 생기는데 잘못한게 뭐죠?
// Else
{
TL_SetEnd(HTL[0],sDate,sTime,bb);
Text_SetLocation(TX,sDate,sTime,bb);
}
// 이것을 사용 해봤는데 수직선이 생김니다.
// 어느부분이 잘못되었나요?
* 요청 사항2 ▶ 마지막 봉 기준 하락율좀 부탁 드립니다.(피보나치선)
즉 맨 마지막 봉 기준
마지막 봉대비 0.25 하락한 우측 추세선(굵기 0) 점선
마지막 봉대비 0.38 하락선 우측 추세선(굵기 0) 점선
마지막 봉대비 0.50 하락선 우측 추세선(굵기 0) 점선
마지막 봉대비 -0.25 하락선 우측 추세선(굵기 0) 점선
마지막 봉대비 -0.38 하락선 우측 추세선(굵기 0) 점선
마지막 봉대비 -0.50 하락선 우측 추세선(굵기 0) 점선
6개 추세선이 상기 우측 연장선 하고 같이 생기도록 부탁 드립니다.
▶새로운 추세선이 발생하면 종료 하고 새로운 추세선 가격 기준 6개선 발생 하면서
이전 추세선은 1개(변수) 까지만 6개선 점선 표시 (2개 이전은 삭제)
즉 추세선 2개(변수) 라면 3개이전은 삭제
* 혹시 6개선이 안생긴다면 Lowest(L,P)[1] 를 Lowest(L,P)[3] 바꾸어도 됨니다
<아래수식>
input : bb(10);
var : TX(0);
input : P(10),n(9),틱(5);
var : cnt(0),LL(0),HH(0);
Array : LTL[10](0),HTL[10](0);
if L < Lowest(L,P)[1] and (LL == 0 or (LL > 0 and abs(L-LL) >= PriceScale*틱)) Then
{
LL = L;
For cnt = 9 DownTo 1
{
LTL[cnt] = LTL[cnt-1];
}
LTL[0] = TL_new(sDate,sTime,LL,sDate[200],sTime[200],LL);
TL_SetColor(LTL[0],Blue);
TL_Delete(LTL[n]);
}
if H > highest(H,P)[1] and (HH == 0 or (HH > 0 and abs(H-HH) >= PriceScale*틱)) Then
{
HH = H;
For cnt = 9 DownTo 1
{
HTL[cnt] = HTL[cnt-1];
}
HTL[0] = TL_new(sDate,sTime,HH,sDate[200],sTime[200],HH);
TL_SetColor(HTL[0],Red);
TL_Delete(HTL[n]);
}
// 아래부분 이 잘못 된거 갔습니다. 수정좀 요청 드립니다.
Else
{
TL_SetEnd(HTL[0],sDate,sTime,bb);
Text_SetLocation(TX,sDate,sTime,bb);
}
* 고맙습니다 행복한 날 되십시요^^
좋은날 있을것 입니다.
2023-08-28
1359
글번호 171874
지표
답변완료
안녕하세요 수식문의 부탁드립니다^^
안녕하세요 고생이 많으세요 종목검색수식문의를 부탁드리려고합니다.
아래수식 2가지를 사용중인데요 하나로 합쳐서 결과를 보고싶습니다
잘부탁드리겠습니다.^^
==============================================
input : 단기(20),중기(60),장기(120);
input : Multiple(1000);
var : p(0),k(0),q(0),x(0),y(0),z(0);
p = (highest(high,단기)+lowest(low,단기))/2;
k = (highest(high,중기)+lowest(low,중기))/2;
q = (p+k)/2;
x = (highest(high,장기)+lowest(low,장기))/2;
y = (highest(high,장기)+lowest(low,장기))/2;
z = (x+y)/2;
var1 = (q-z)/q*100;
if CrossUp(var1,0) and V[1] * (Multiple/100) <= V Then
find(1);
==============================================
input : 단기(20),중기(60),장기(120);
var : p(0),k(0),q(0),x(0),y(0),z(0),a(False),b(0);
p = (highest(high,단기)+lowest(low,단기))/2;
k = (highest(high,중기)+lowest(low,중기))/2;
q = (p+k)/2;
x = (highest(high,장기)+lowest(low,장기))/2;
y = (highest(high,장기)+lowest(low,장기))/2;
z = (x+y)/2;
a = Crossdown((q-z)/q*1000, 0);
if a == true Then
b = c;
if b > 0 and CrossUp(C,b) Then
Find(1);
2023-08-27
1352
글번호 171873
종목검색
답변완료
문의드립니다.
안녕하세요
아래 신호 수식을 종목 검색식으로 부탁 드리겠습니다.
M= (highestsince(1,Crossup(trix(period),0),c)+
Lowestsince(1,Crossdown(trix(period),0),c))/2;
c>=M and
Macd(short,long) >= 0 and
macd(short,long) > eavg(macd(short,long),signal) and
diplus(14)>=diminus(14) and
c>=sar(0.015,0.15) and
crossup(c, bbandsup(period1,2))
Period 8
short 10
long 15
signal 7
period 17
2023-08-27
1164
글번호 171871
검색
답변완료
시뮬레이션과 실시간의 차이 관련 문의 드립니다.
안녕하세요.
시스템식의 경우 실시간과 시뮬레이션 결과와 괴리가 있습니다.
이는 시뮬레이션의 경우 과거데이터움직임 가설때문에 그렇다는 것은 이해를 했습니다.
그래서 몇가지 고민을 했는데 올바른 것인지 설명 부탁드립니다.
1. 진입기준 (그림 참조)
매수의 경우, 매수 조건 만족시
그 다음봉 시가+1틱에 진입하기 위해 NextBarOpen+PriceScale*1 로 지정을 했다면
위 그림의 빨간점이 매수가격이 될겁니다.
이경우 진입은 무조건 되지만,
주가의 실제 움직임과 과거 움직임 가설과는 차이가 있어서
그림처럼 고가보다 저가가 시가와 가까운 캔들의 경우에는 시가-저가-고가-종가 흐름으로 가정하기 때문에 무조건 수익으로 마감하는 결과가 나옵니다.
그러나 실제 움직임에 있어서는 시가 이후에 상승-저가-상승-고가-종가 이런 형식으로 흐름이 이어지는 경우도 많습니다.
따라서,
이 그림에서의 경우 시뮬레이션에서는 수익으로 결과가 나오지만,
실전에서는 시가+1틱에 매수진입이 된 이후 저가부근에서 손절이 될 수도 있습니다.
그래서,
이런 괴리를 최대한 줄이기 위한 방법으로
시가발생이후 일정부분 상승 후 저가를 찍고 다시 상승하는 경우를 가정해서
시가+1틱 진입 ==> 시가+10틱 진입
이런 식으로 시가에서 어느정도 상승한 시점에 진입하는 것이 시뮬레이션과 실전과의 괴리를 좁히는데 도움이 되는지요??
2. 손절 관련
그림에서 진입가격과 저가의 차이는 10틱입니다.
시뮬레이션에서는 저가를 찍고 상승하면서 체결이 되는 경우를 상정하기 때문에
손절을 7틱으로 주었어도 손절이 안되고 수익마감하는 결과를 만들어 냅니다.
이 또한 시뮬레이션과 실전의 괴리를 만드는 원인이 될뗀데...
이 부분을 최소화 할 수 있는 방법은 무었인지요?
3. 참조데이터를 활용한 방법
시가+OO틱 진입 이후 하락시 손절로 시뮬레이션 데이터가 잡히지 않는 경우를 방지하기 위한 방법으로 참조데이터를 이용하는 방법도 있는지요?
예를 들면,
진입은 60분봉으로 하고,
진입 이후의 흐름은 1분봉으로 체크 할 수 있다면 시뮬레이션과의 차이를 줄일 수 있을듯 합니다.
60분봉에서 매수조건 만족시 시가+10틱에 매수진입하고,
이후 1분봉에서 진입가격대비 20틱 하락하면 손절,
진입가격대비 50틱 상승하면 수익청산되는 시스템식 예시 부탁드려봅니다.
4. 슬리피지 관련
시스템 테스트를 하면서 슬리피지를 어느정도로 하는 것이 적당한지 고민을 많이 했습니다.
나스닥 시장가 진입을 하는데 있어서
변동성이 적은 낮 시간에는 신호발생가격에서 1~2틱 내에서 진입과 청산이 되는 것은 확인을 했는데..
야간장의 경우 충분한 테스트가 되지 않아 평균적인 슬리피지는 어느정도 발생하는지 테스트한 데이터가 있는지 궁금합니다.
저는 진입시 5틱, 청산시 5틱 을 설정하였는데, 적절한 수치인지 궁금합니다.
2023-08-26
906
글번호 171869
시스템