متن کامل آگهی:
سلام من این کد رو در نوشتم ولی در اجرا خطا میدهد لطفا اگر امکان دارد من را راهنمایی کنید... راستی چگونه میتوانم از خدمات شما بهره مند شوم....
1)کدی که بتواند bosو choch را در نمودار تشخیص دهد2)پس از بوجود آمدن choch ( حتما کندل آخرین کف قیمت را در روند صعودی و آخرین سقف قیمت را در روند نزولی شکسته باشد با بدنه) سیگنال اولیه صادر گردد با خط زرد رنگ3)بتواند اوردربلاک یا fvgرا در ناحیه 50 تا 78 فیبو را در آخرین حرکت قیمتی شناسایی کند4)سپس با برخورد قیمت به محدوده اوردربلاک یا fvg( نباید قیمت از آن محدوده عبور کند چه با شدو چه با بدنه) شروط زیر را یررسی کند و سیگنال ورود صادر نماید الف) الگوی سیگنالحتما یک الگوی پین بار 382 و یا الگووی اینگولفی در روند اصلاحی در جهت روند choch تشکیل شود…ب) کندل تاییدکلوز کندل تایید باید در buy بالاتر از کلوز کندل 382 و یا اینگولف باشد و در sellپایین تر از کندل 382 ویا اینگولف باشدموارد زیر نیز بر روی نمودار قیمت مشخص و نمایش داده شود1) خطحد ضرر در زیر یا بالای محدوده اوردربلاک یاfvgباشد با رنگ قرمز2) حد سود با نسبت 1 به 2 با خط سبز3)برای کندل تایید پس از کلوز کندل با علامتB برای buy و S برای sell4) خط فیبوی50 و78 بر روی نمودار با رنگ بنفش به صورت خط چین 5) محدوده اوردربلاک با حروفOBبه رنگ صورتی و fvgبا حروفfvgبارنگ نارنجی
//@version=6 strategy("Smart Money Strategy v2", overlay=true) // 1. تشخیص BOS و CHoCH با دقت بیشتر // تابع تشخیص BOS (Break of Structure) detectBOS(high, low) => var float lastHigh = na var float lastLow = na var bool isBOS = false var bool isBullishBOS = false var bool isBearishBOS = false if high > nz(lastHigh\[1\],high) and low > nz(lastLow\[1\],low) isBullishBOS := false isBearishBOS := false else if high > nz(lastHigh\[1\], high) isBullishBOS := true isBearishBOS := false else if low < nz(lastLow\[1\], low) isBullishBOS := false isBearishBOS := true if isBullishBOS == true or isBearishBOS == true lastHigh := high lastLow := low isBOS := true else isBOS := false \[isBOS, lastHigh, lastLow,isBullishBOS,isBearishBOS\] // تابع تشخیص CHoCH (Change of Character) detectCHoCH(high, low, isBOS,lastHigh, lastLow) => var float lastChochHigh = na var float lastChochLow = na var bool isCHoCH = false var bool isBullishCHoCH = false var bool isBearishCHoCH = false if isBOS == true if high > lastHigh and low > lastLow isBullishCHoCH := false isBearishCHoCH := false else if low < lastLow isBullishCHoCH := false isBearishCHoCH := true else if high > lastHigh isBullishCHoCH := true isBearishCHoCH := false if isBullishCHoCH == true or isBearishCHoCH == true lastChochHigh := high lastChochLow := low isCHoCH := true else isCHoCH := false else isCHoCH := false \[isCHoCH, lastChochHigh, lastChochLow,isBullishCHoCH,isBearishCHoCH\] bos\_result = detectBOS(high,low) isBOS = bos\_result\[0\] lastHigh = bos\_result\[1\] lastLow = bos\_result\[2\] isBullishBOS = bos\_result\[3\] isBearishBOS = bos\_result\[4\] choch\_result = detectCHoCH(high, low,isBOS, lastHigh, lastLow) isCHoCH = choch\_result\[0\] lastChochHigh = choch\_result\[1\] lastChochLow = choch\_result\[2\] isBullishCHoCH = choch\_result\[3\] isBearishCHoCH = choch\_result\[4\] // 2. سیگنال اولیه CHoCH (خط زرد) var line chochLine = na if isCHoCH chochLine := line.new(bar\_index\[1\], isBullishCHoCH ? lastLow : lastHigh, bar\_index, isBullishCHoCH ? low : high, color=color.yellow, width=2) // 3. شناسایی اوردربلاک و FVG با دقت بیشتر isBullishOB(high, low) => low\[1\] > high\[2\] and low > low\[1\] isBearishOB(high, low) => high\[1\] < low\[2\] and high < high\[1\] isBullishFVG(high, low) => high\[2\] < low and high\[1\] > high\[3\] isBearishFVG(high, low) => low\[2\] > high and low\[1\] < low\[3\] var float obHigh = na var float obLow = na var float fvgHigh = na var float fvgLow = na if isBullishOB(high, low) obHigh := high\[2\] obLow := low\[1\] if isBearishOB(high, low) obHigh := high\[1\] obLow := low\[2\] if isBullishFVG(high,low) fvgHigh := high\[1\] fvgLow := low\[2\] if isBearishFVG(high, low) fvgHigh := high\[1\] fvgLow := low\[2\] // 4. فیبو 50-78 var float fiboHigh = na var float fiboLow = na if isCHoCH fiboHigh := isBullishCHoCH ? lastHigh : lastChochHigh fiboLow := isBullishCHoCH ? lastLow : lastChochLow fibo50 = fiboLow + (fiboHigh - fiboLow) \* 0.5 fibo78 = fiboLow + (fiboHigh - fiboLow) \* 0.78 plot(fibo50, color=color.purple, style=plot.style\_dashed, linewidth=1) plot(fibo78, color=color.purple, style=plot.style\_dashed, linewidth=1) // 5. بررسی برخورد قیمت با اوردربلاک یا FVG isPriceInOBorFVG() => (obHigh != na) and (obLow!= na) and high >= obLow and low <= obHigh or (fvgHigh != na) and (fvgLow!= na) and high >= fvgLow and low <= fvgHigh var bool signal\_condition = false // 6. الگوی سیگنال (پین بار 382 یا اینگولف) با دقت بیشتر isBullishPinBar() => close < open and low\[1\] < low and high < high\[1\] and close > open\[1\] isBearishPinBar() => close > open and high\[1\] > high and low > low\[1\] and close < open\[1\] isBullishEngulfing() => close > open and close > open\[1\] and open < close\[1\] and close > high\[1\] and open < low\[1\] isBearishEngulfing() => close < open and close < open\[1\] and open > close\[1\] and close < low\[1\] and open > high\[1\] // 7. کندل تایید isConfirmCandleBuy() => (isBullishPinBar() or isBullishEngulfing()) and close > close\[1\] isConfirmCandleSell() => (isBearishPinBar() or isBearishEngulfing()) and close < close\[1\] // 8. شرایط ورود var bool long\_enter = false var bool short\_enter = false if isPriceInOBorFVG() if isConfirmCandleBuy() and isBullishCHoCH long\_enter := true short\_enter := false signal\_condition := true else if isConfirmCandleSell() and not isBullishCHoCH short\_enter := true long\_enter := false signal\_condition := true else long\_enter := false short\_enter := false signal\_condition := false else long\_enter := false short\_enter := false signal\_condition := false // 9. خطوط حد ضرر و حد سود var float stopLoss = na var float takeProfit = na if long\_enter stopLoss := low takeProfit := close + (close - stopLoss) \* 2 line.new(bar\_index, stopLoss, bar\_index + 1, stopLoss, color=color.red) line.new(bar\_index, takeProfit, bar\_index + 1, takeProfit, color=color.green) if short\_enter stopLoss := high takeProfit := close - (stopLoss - close) \* 2 line.new(bar\_index, stopLoss, bar\_index + 1, stopLoss, color=color.red) line.new(bar\_index, takeProfit, bar\_index + 1, takeProfit, color=color.green) // 10. علامت B و S if long\_enter label.new(bar\_index, low, text="B", color=color.green, style=label.style\_label\_up) if short\_enter label.new(bar\_index, high, text="S", color=color.red, style=label.style\_label\_down) // 11. محدوده اوردربلاک و FVG if obHigh != na and obLow != na box.new(bar\_index, obHigh, bar\_index + 1, obLow, color=color.fuchsia, border\_color=color.fuchsia, border\_width=1) label.new(bar\_index, obHigh, text="OB", color=color.white) if fvgHigh != na and fvgLow != na box.new(bar\_index, fvgHigh, bar\_index + 1, fvgLow, color=color.orange, border\_color=color.orange, border\_width=1) label.new(bar\_index, fvgHigh, text="FVG", color=color.black) // ورود به معامله if long\_enter strategy.entry("Long", strategy.long) if short\_enter strategy.entry("Short", strategy.short)