커뮤니티

수식 변환 문의

프로필 이미지
오이도인
2022-11-18 13:53:59
1432
글번호 163911
답변완료

첨부 이미지

수고 하십니다. 아래 식 변환 부탁드립니다. L100, f1,f2,f3의 지표를 구현하고 싶습니다 그 외의 것이 있어서 복잡하거나 시간이 많이 걸린다면 생략하셔도 됩니다.. 수고하세요... ######## # Original Code From: TD Ameritrade IP Company, Inc. (c) 2009-2020 # Original StudyName: ATRTrailingStop # Type: Study # blackFLAG FTS SwingArms # Edited by: Jose Azcarate # blackFLAG Futures Trading - FOR EDUCATIONAL PURPOSES ONLY # TWITTER: @blackflagfuture # Settings Vary. My preferred setting is 28 / 5 But also use 30 / 8 and 5 / 3.5 depending on strategy. input trailType = {default modified, unmodified}; input ATRPeriod = 28; input ATRFactor = 5; input firstTrade = {default long, short}; input averageType = AverageType.WILDERS; input fib1Level = 61.8; input fib2Level = 78.6; input fib3Level = 88.6; Assert(ATRFactor > 0, "'atr factor' must be positive: " + ATRFactor); def HiLo = Min(high - low, 1.5 * Average(high - low, ATRPeriod)); def HRef = if low <= high[1] then high - close[1] else (high - close[1]) - 0.5 * (low - high[1]); def LRef = if high >= low[1] then close[1] - low else (close[1] - low) - 0.5 * (low[1] - high); def trueRange; switch (trailType) { case modified: trueRange = Max(HiLo, Max(HRef, LRef)); case unmodified: trueRange = TrueRange(high, close, low); } def loss = ATRFactor * MovingAverage(averageType, trueRange, ATRPeriod); def state = {default init, long, short}; def trail; switch (state[1]) { case init: if (!IsNaN(loss)) { switch (firstTrade) { case long: state = state.long; trail = close - loss; case short: state = state.short; trail = close + loss; } } else { state = state.init; trail = Double.NaN; } case long: if (close > trail[1]) { state = state.long; trail = Max(trail[1], close - loss); } else { state = state.short; trail = close + loss; } case short: if (close < trail[1]) { state = state.short; trail = Min(trail[1], close + loss); } else { state = state.long; trail = close - loss; } } def BuySignal = Crosses(state == state.long, 0, CrossingDirection.ABOVE); def SellSignal = Crosses(state == state.short, 0, CrossingDirection.ABOVE); def ex = if BuySignal then high else if SellSignal then low else if state == state.long then Max(ex[1], high) else if state == state.short then Min(ex[1], low) else ex[1]; plot TrailingStop = trail; TrailingStop.SetPaintingStrategy(PaintingStrategy.POINTS); TrailingStop.DefineColor("Long", Color.GREEN); TrailingStop.DefineColor("Short", Color.RED); TrailingStop.AssignValueColor(if state == state.long then TrailingStop.Color("Long") else TrailingStop.Color("Short")); plot Extremum = ex; Extremum.SetPaintingStrategy(PaintingStrategy.POINTS); Extremum.DefineColor("HH", Color.GREEN); Extremum.DefineColor("LL", Color.RED); Extremum.AssignValueColor(if state == state.long then Extremum.Color("HH") else Extremum.Color("LL")); Extremum.Hide(); def f1 = ex + (trail - ex) * fib1Level / 100; def f2 = ex + (trail - ex) * fib2Level / 100; def f3 = ex + (trail - ex) * fib3Level / 100; def l100 = trail + 0; plot Fib1 = f1; Fib1.SetPaintingStrategy(PaintingStrategy.POINTS); Fib1.SetDefaultColor(Color.BLACK); Fib1.Hide(); plot Fib2 = f2; Fib2.SetPaintingStrategy(PaintingStrategy.POINTS); Fib2.SetDefaultColor(Color.BLACK); Fib2.Hide(); plot Fib3 = f3; Fib3.SetPaintingStrategy(PaintingStrategy.POINTS); Fib3.SetDefaultColor(Color.BLACK); Fib3.Hide(); /* AddCloud(f1, f2, Color.LIGHT_GREEN, Color.LIGHT_RED, no); AddCloud(f2, f3, Color.GREEN, Color.RED, no); AddCloud(f3, l100, Color.DARK_GREEN, Color.DARK_RED, no);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-11-18 14:24:15

안녕하세요 예스스탁입니다. 올려주신 내용은 변경해 드리기 어렵습니다. 사용한 경험이 없는 언어라 내용을 정확히 파악하기 어렵습니다. 도움을 드리지 못해 죄송합니다. 즐거운 하루되세요 > 오이도인 님이 쓴 글입니다. > 제목 : 수식 변환 문의 > 수고 하십니다. 아래 식 변환 부탁드립니다. L100, f1,f2,f3의 지표를 구현하고 싶습니다 그 외의 것이 있어서 복잡하거나 시간이 많이 걸린다면 생략하셔도 됩니다.. 수고하세요... ######## # Original Code From: TD Ameritrade IP Company, Inc. (c) 2009-2020 # Original StudyName: ATRTrailingStop # Type: Study # blackFLAG FTS SwingArms # Edited by: Jose Azcarate # blackFLAG Futures Trading - FOR EDUCATIONAL PURPOSES ONLY # TWITTER: @blackflagfuture # Settings Vary. My preferred setting is 28 / 5 But also use 30 / 8 and 5 / 3.5 depending on strategy. input trailType = {default modified, unmodified}; input ATRPeriod = 28; input ATRFactor = 5; input firstTrade = {default long, short}; input averageType = AverageType.WILDERS; input fib1Level = 61.8; input fib2Level = 78.6; input fib3Level = 88.6; Assert(ATRFactor > 0, "'atr factor' must be positive: " + ATRFactor); def HiLo = Min(high - low, 1.5 * Average(high - low, ATRPeriod)); def HRef = if low <= high[1] then high - close[1] else (high - close[1]) - 0.5 * (low - high[1]); def LRef = if high >= low[1] then close[1] - low else (close[1] - low) - 0.5 * (low[1] - high); def trueRange; switch (trailType) { case modified: trueRange = Max(HiLo, Max(HRef, LRef)); case unmodified: trueRange = TrueRange(high, close, low); } def loss = ATRFactor * MovingAverage(averageType, trueRange, ATRPeriod); def state = {default init, long, short}; def trail; switch (state[1]) { case init: if (!IsNaN(loss)) { switch (firstTrade) { case long: state = state.long; trail = close - loss; case short: state = state.short; trail = close + loss; } } else { state = state.init; trail = Double.NaN; } case long: if (close > trail[1]) { state = state.long; trail = Max(trail[1], close - loss); } else { state = state.short; trail = close + loss; } case short: if (close < trail[1]) { state = state.short; trail = Min(trail[1], close + loss); } else { state = state.long; trail = close - loss; } } def BuySignal = Crosses(state == state.long, 0, CrossingDirection.ABOVE); def SellSignal = Crosses(state == state.short, 0, CrossingDirection.ABOVE); def ex = if BuySignal then high else if SellSignal then low else if state == state.long then Max(ex[1], high) else if state == state.short then Min(ex[1], low) else ex[1]; plot TrailingStop = trail; TrailingStop.SetPaintingStrategy(PaintingStrategy.POINTS); TrailingStop.DefineColor("Long", Color.GREEN); TrailingStop.DefineColor("Short", Color.RED); TrailingStop.AssignValueColor(if state == state.long then TrailingStop.Color("Long") else TrailingStop.Color("Short")); plot Extremum = ex; Extremum.SetPaintingStrategy(PaintingStrategy.POINTS); Extremum.DefineColor("HH", Color.GREEN); Extremum.DefineColor("LL", Color.RED); Extremum.AssignValueColor(if state == state.long then Extremum.Color("HH") else Extremum.Color("LL")); Extremum.Hide(); def f1 = ex + (trail - ex) * fib1Level / 100; def f2 = ex + (trail - ex) * fib2Level / 100; def f3 = ex + (trail - ex) * fib3Level / 100; def l100 = trail + 0; plot Fib1 = f1; Fib1.SetPaintingStrategy(PaintingStrategy.POINTS); Fib1.SetDefaultColor(Color.BLACK); Fib1.Hide(); plot Fib2 = f2; Fib2.SetPaintingStrategy(PaintingStrategy.POINTS); Fib2.SetDefaultColor(Color.BLACK); Fib2.Hide(); plot Fib3 = f3; Fib3.SetPaintingStrategy(PaintingStrategy.POINTS); Fib3.SetDefaultColor(Color.BLACK); Fib3.Hide(); /* AddCloud(f1, f2, Color.LIGHT_GREEN, Color.LIGHT_RED, no); AddCloud(f2, f3, Color.GREEN, Color.RED, no); AddCloud(f3, l100, Color.DARK_GREEN, Color.DARK_RED, no);