답변완료
좋은 주말 되십시요^^
* 주말인데 죄송하게 시스템 수식 하나만 요청 드립니다.
* 기준
ㅇ 5일 이평선이 20일 이평선을 크로스업 하면 매수(1계약)
- 수익이 50틱이면 청산
- 매수후 손실이면서 하이킨 아시 색상이 바뀌면 추가매수(1차 추가매수 2계약)
(매매 진입시 색상 기준 으로 바뀌는 기준임)
- 1차 추가 매수후 손실이면서 하이킨 아시 색상이 바뀌면 2차추가매수(4계약)
- 2차 추가 매수후 손실이면서 하이킨 아시 색상이 바뀌면 3차추가매수(8계약)
- 3차 추가 매수후 손실이면서 하이킨 아시 색상이 바뀌면 4차추가매수(16계약)
- 끝
혹시 이런 매매수식이 가능 할런지요 수식요청 좀 드림니다.
## 하이킨 아시 사용 수식
input : len(20),len2(20);
var : oo(0),cc(0),hh(0),ll(0),col(0);
var : haclose(0),haopen(0),hahigh(0),halow(0);
var : o2(0),h2(0),l2(0),c2(0);
oo=ema(open,len);
cc=ema(close,len);
hh=ema(high,len);
ll=ema(low,len);
haclose = (oo+hh+ll+cc)/4;
haopen = iff(IsNaN(haopen[1]) == true, (oo + cc)/2 , (haopen[1] + haclose[1]) / 2);
hahigh = max (hh, max(haopen,haclose));
halow = min (ll, min(haopen,haclose));
o2=ema(haopen, len2);
c2=ema(haclose, len2);
h2=ema(hahigh, len2);
l2=ema(halow, len2);
col=iff(o2>c2 , red , lime);
//PlotPaintBar(h2, l2,o2,c2, "heikin smoothed", col);
##============================================================================================================
##============================================================================================================
input : StartTime(080000),EndTime(220000);
var : Tcond(False);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
##============================================================================================================
##============================================================================================================
{
##============================================================================================================
## 매수식
If MarketPosition <= 0 and sDate >= 20230101 and Tcond == true and stime >= 082000 and stime <= 220000 and 수식요청 Then
{
Buy( "수");
PlaySound("C:KiwoomGlobalsoundsound1.wav");
}
##============================================================================================================
##============================================================================================================
## 매도식
If MarketPosition <= 0 and sDate >= 20230101 and Tcond == true and stime >= 082000 and stime <= 220000 and 수식요청 Then
{
Sell( "도");
PlaySound("C:KiwoomGlobalsoundsound1.wav");
}
##============================================================================================================
##============================================================================================================
}
##============================================================================================================
##============================================================================================================
## 매수 청산식
if MarketPosition == 1 then
{
ExitLong("수수익",AtLimit,EntryPrice+PriceScale*50);
ExitLong("수손절",AtStop,EntryPrice-PriceScale*60);
Exitlong("수80청",AtStop,highest(H,BarsSinceEntry)-PriceScale*80);
//if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*0 Then Exitlong("수0프청",AtStop,highest(H,BarsSinceEntry)-abs(highest(H,BarsSinceEntry)-EntryPrice)*7.9);
//if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*20 Then Exitlong("수2프청",AtStop,highest(H,BarsSinceEntry)-abs(highest(H,BarsSinceEntry)-EntryPrice)*1.0);
//if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*40 Then Exitlong("수4프청",AtStop,highest(H,BarsSinceEntry)-abs(highest(H,BarsSinceEntry)-EntryPrice)*0.9);
//if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*50 Then Exitlong("수5프청",AtStop,highest(H,BarsSinceEntry)-abs(highest(H,BarsSinceEntry)-EntryPrice)*0.7);
//if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*70 Then Exitlong("수7프청",AtStop,highest(H,BarsSinceEntry)-abs(highest(H,BarsSinceEntry)-EntryPrice)*0.3);
}
##============================================================================================================
##============================================================================================================
## 매도 청산식
if MarketPosition == -1 then
{
ExitShort("도수익",AtLimit,EntryPrice-PriceScale*50);
ExitShort("도손절",AtStop,EntryPrice+PriceScale*60);
ExitShort("도80청",AtStop,highest(H,BarsSinceEntry)-PriceScale*80);
//if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*0 Then ExitShort("도0프청",AtStop,lowest(L,BarsSinceEntry)+abs(lowest(L,BarsSinceEntry)-EntryPrice)*7.9);
//if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*20 Then ExitShort("도2프청",AtStop,lowest(L,BarsSinceEntry)+abs(lowest(L,BarsSinceEntry)-EntryPrice)*1.0);
//if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*40 Then ExitShort("도4프청",AtStop,lowest(L,BarsSinceEntry)+abs(lowest(L,BarsSinceEntry)-EntryPrice)*0.5);
//if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*50 Then ExitShort("도5프청",AtStop,lowest(L,BarsSinceEntry)+abs(lowest(L,BarsSinceEntry)-EntryPrice)*0.5);
//if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*70 Then ExitShort("도7프청",AtStop,lowest(L,BarsSinceEntry)+abs(lowest(L,BarsSinceEntry)-EntryPrice)*0.3);
}
##============================================================================================================
##============================================================================================================
SetStopEndofday(230000);
##============================================================================================================
##============================================================================================================
ㅇ 좋은 주말되십시요^^ 항상 많은 도움에 고맙습니다.
2025-03-10
357
글번호 188893
시스템
답변완료
수식변환
항상 수고 많으십니다.
트레이딩뷰에 있는 수식을 이용할수있도록 도움받고자 글 남깁니다.
변환 부탁드립니다.
************
study(title="CCI Divergences", format=format.price)
len = input(title="CCI Period", minval=1, defval=14)
src = input(title="CCI Source", defval=close)
lbR = input(title="Pivot Lookback Right", defval=5)
lbL = input(title="Pivot Lookback Left", defval=5)
rangeUpper = input(title="Max of Lookback Range", defval=60)
rangeLower = input(title="Min of Lookback Range", defval=5)
plotBull = input(title="Plot Bullish", defval=true)
plotHiddenBull = input(title="Plot Hidden Bullish", defval=false)
plotBear = input(title="Plot Bearish", defval=true)
plotHiddenBear = input(title="Plot Hidden Bearish", defval=false)
bearColor = color.red
bullColor = color.green
hiddenBullColor = color.green
hiddenBearColor = color.red
textColor = color.white
noneColor = color.new(color.white, 100)
osc = cci(src, len)
plot(osc, title="CCI", linewidth=2, color=color.yellow)
obLevel = hline(100, title="Overbought", linestyle=hline.style_dotted)
osLevel = hline(-100, title="Oversold", linestyle=hline.style_dotted)
fill(obLevel, osLevel, title="Background", color=color.gray, transp=80)
plFound = na(pivotlow(osc, lbL, lbR)) ? false : true
phFound = na(pivothigh(osc, lbL, lbR)) ? false : true
_inRange(cond) =>
bars = barssince(cond == true)
rangeLower <= bars and bars <= rangeUpper
alertcondition(osc[1] > 100.0 and osc[2] < 100.0, title="CCI value crosses over 100.0", message="Check charts for a CCI cross over 100.0")
alertcondition(osc[1] < 100.0 and osc[2] > 100.0, title="CCI value crosses under 100.0", message="Check charts for a CCI cross under 100.0")
alertcondition(osc[1] > -100. and osc[2] < -100.0, title="CCI value crosses over -100.0", message="Check charts for a CCI cross over -100.0")
alertcondition(osc[1] < -100.0 and osc[2] > -100.0, title="CCI value crosses under -100.0", message="Check charts for a CCI cross under -100.0")
//------------------------------------------------------------------------------
// Regular Bullish
// Osc: Higher Low
oscHL = osc[lbR] > valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])
// Price: Lower Low
priceLL = low[lbR] < valuewhen(plFound, low[lbR], 1)
bullCond = plotBull and priceLL and oscHL and plFound
plot(
plFound ? osc[lbR] : na,
offset=-lbR,
title="Regular Bullish",
linewidth=2,
color=(bullCond ? bullColor : noneColor),
transp=0
)
plotshape(
bullCond ? osc[lbR] : na,
offset=-lbR,
title="Regular Bullish Label",
text=" Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor,
transp=0
)
alertcondition(bullCond, title="Regular bullish divergence in CCI found", message="Check charts for a regular bullish divergence found with CCI")
//------------------------------------------------------------------------------
// Hidden Bullish
// Osc: Lower Low
oscLL = osc[lbR] < valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])
// Price: Higher Low
priceHL = low[lbR] > valuewhen(plFound, low[lbR], 1)
hiddenBullCond = plotHiddenBull and priceHL and oscLL and plFound
plot(
plFound ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bullish",
linewidth=2,
color=(hiddenBullCond ? hiddenBullColor : noneColor),
transp=0
)
plotshape(
hiddenBullCond ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bullish Label",
text=" H Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor,
transp=0
)
alertcondition(hiddenBullCond, title="Hidden bullish divergence in CCI found", message="Check charts for a hidden bullish divergence found with CCI")
//------------------------------------------------------------------------------
// Regular Bearish
// Osc: Lower High
oscLH = osc[lbR] < valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])
// Price: Higher High
priceHH = high[lbR] > valuewhen(phFound, high[lbR], 1)
bearCond = plotBear and priceHH and oscLH and phFound
plot(
phFound ? osc[lbR] : na,
offset=-lbR,
title="Regular Bearish",
linewidth=2,
color=(bearCond ? bearColor : noneColor),
transp=0
)
plotshape(
bearCond ? osc[lbR] : na,
offset=-lbR,
title="Regular Bearish Label",
text=" Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor,
transp=0
)
alertcondition(bearCond, title="Regular bearish divergence in CCI found", message="Check charts for a regular bearish divergence found with CCI")
//------------------------------------------------------------------------------
// Hidden Bearish
// Osc: Higher High
oscHH = osc[lbR] > valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])
// Price: Lower High
priceLH = high[lbR] < valuewhen(phFound, high[lbR], 1)
hiddenBearCond = plotHiddenBear and priceLH and oscHH and phFound
plot(
phFound ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bearish",
linewidth=2,
color=(hiddenBearCond ? hiddenBearColor : noneColor),
transp=0
)
plotshape(
hiddenBearCond ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bearish Label",
text=" H Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor,
transp=0
)
alertcondition(hiddenBearCond, title="Hidden bearish divergence in CCI found", message="Check charts for a hidden bearish divergence found with CCI")
2025-03-07
402
글번호 188892
지표