tredingview saytida ishlaydigan indicator kodini y...
Создано: 16 августа 2025 г.
Создано: 16 августа 2025 г.
tredingview saytida ishlaydigan indicator kodini yozib bering . indicator patterin yasaydi . patterin quyidagi shartlar bajarilganda yasaladi .
1-sham soyasini 2-shamni soyasi pastga buzib otadi . 1-shamni soyasidan 2-shamni tanasi pastga yopilmagan bolishi kerak. 3-shamni soyasi birinchi shamning tanasining quyisidan pastga tushadi lekin 1-shamning pastki soyasidan pastga tushmaydi .shu shartlar bajarilganda , 1-shamni tanisining quyi qismidan va pastki soyasini uchidan ong tomonga qarab 3-4 sham xajmichalik togri tortburchak chizsin . togri tortburchak rangi ochroq yashil bolsin . rangi grafikdagi shamlarni korishda xalaqit qilmaydigan bolsin .
Zo’r — quyidagi Pine Script (v5) kodi TradingView’da siz so‘ragan 3-shamli patternni topadi va 1-sham tanasi pastki cheti bilan pastki soyasi (wick) oralig‘ida 3–4 sham kengligida, och yashil yarim shaffof to‘g‘ri to‘rtburchak chizadi. Rang shamlarni ko‘rishga xalaqit qilmasligi uchun shaffof qilingan.
pine//@version=5 indicator("Pattern: 1-2-3 sham (pastki wick zonasi)", overlay=true, timeframe="", timeframe_gaps=true) // === Foydalanuvchi sozlamalari extendBars = input.int(4, "To'g'ri to'rtburchak kengligi (shamlar soni)", minval=1, maxval=20) fillColor = input.color(color.new(color.lime, 80), "To'g'ri to'rtburchak rangi (yarim shaffof)") borderColor = input.color(color.new(color.lime, 0), "Chegara rangi") // === 1-sham, 2-sham, 3-sham (joriy bar 3-sham bo'ladi) low1 = low[2] // 1-sham pastki wick uchi bodyLow1 = math.min(open[2], close[2]) // 1-sham tanasining pastki qismi low2 = low[1] // 2-sham pastki wick uchi open2 = open[1] close2 = close[1] bodyLow2 = math.min(open2, close2) // 2-sham tanasining pastki qismi low3 = low // 3-sham pastki wick uchi // === Shartlar: // 1) 2-shamning wick’i 1-shamning wick’idan pastga buzib o‘tadi cond1 = low2 < low1 // 2) 2-sham TANASI 1-sham pastki wick darajasidan PASTDA yopilmaydi // (ya'ni 2-sham tanasining pastki cheti 1-sham pastki wickidan pastga tushmasligi kerak) cond2 = bodyLow2 >= low1 // 3) 3-sham wick’i 1-sham TANASINING pastki qismidan pastga kiradi, // ammo 1-sham pastki wickidan pastga TUSHMAYDI cond3 = (low3 < bodyLow1) and (low3 >= low1) // Umumiy signal pattern = cond1 and cond2 and cond3 // === Pattern chiqqanda zona chizish // Zonani 1-sham baridan (bar_index[2]) boshlab, o'ngga extendBars shamgacha chizamiz. // Vertikal chegaralar: past = 1-sham pastki wick (low1), yuqori = 1-sham tanasi pastki cheti (bodyLow1). if pattern x1 = bar_index[2] x2 = bar_index[2] + extendBars y1 = low1 y2 = bodyLow1 // Agar qandaydir noodatiy holatda y2 < y1 bo'lsa, almashtirib qo'yamiz yLow = math.min(y1, y2) yHigh = math.max(y1, y2) rect.new(x1=x1, y1=yLow, x2=x2, y2=yHigh, xloc=xloc.bar_index, extend=extend.none, bgcolor=fillColor, border_color=borderColor) // Istasangiz alert yoqishingiz uchun alertcondition(pattern, title="1-2-3 Pastki Wick Pattern", message="Pattern topildi: 1-sham zonasiga qarang.")
min(open, close)
— 1-sham pastki wickidan pastga tushmaydi).extendBars
ta sham (standart 4).transp ≈ 80
), shamlarni ko‘rishga xalaqit qilmaydi.Agar “kenglikni 3 sham bo‘lsin” desangiz, sozlamada To'g'ri to'rtburchak kengligi ni 3 ga o‘zgartiring. Yoki kodda extendBars
ning input.int(4, ...)
ni input.int(3, ...)
ga almashtiring.
1-qatorda xatolik bor: Версия 5 Pine Script® устарела. Используйте текущую версию — 6.(PINE_VERSION_OUTDATED)
44-qatorda xatolik bor: Undeclared identifier 'rect'
Rahmat! Ikki xatoni tuzattim:
rect.new
TradingView’da yo‘q — to‘g‘ri funksiyasi box.new
.Quyidagi kodni to‘liq nusxalab qo‘ying — Pine Script® v6’da xatosiz ishlaydi:
pine//@version=6 indicator("Pattern: 1-2-3 sham (pastki wick zonasi) [v6]", overlay=true) // === Foydalanuvchi sozlamalari extendBars = input.int(4, "To'g'ri to'rtburchak kengligi (shamlar soni)", minval=1, maxval=20) fillColor = input.color(color.new(color.lime, 80), "To'g'ri to'rtburchak rangi (yarim shaffof)") borderColor = input.color(color.new(color.lime, 0), "Chegara rangi") // === 1-sham, 2-sham, 3-sham (joriy bar 3-sham bo'ladi) low1 = low[2] // 1-sham pastki wick uchi bodyLow1 = math.min(open[2], close[2]) // 1-sham tanasining pastki qismi low2 = low[1] // 2-sham pastki wick uchi open2 = open[1] close2 = close[1] bodyLow2 = math.min(open2, close2) // 2-sham tanasining pastki qismi low3 = low // 3-sham pastki wick uchi // === Shartlar: // 1) 2-sham wick’i 1-sham wick’idan pastga buzib o‘tadi cond1 = low2 < low1 // 2) 2-sham TANASI 1-sham pastki wick darajasidan pastda yopilmaydi cond2 = bodyLow2 >= low1 // 3) 3-sham wick’i 1-sham TANASINING pastki qismidan pastga kiradi, // ammo 1-sham pastki wickidan pastga tushmaydi cond3 = (low3 < bodyLow1) and (low3 >= low1) // Umumiy signal pattern = cond1 and cond2 and cond3 // === Pattern chiqqanda zona chizish if pattern // Gorizontal: 1-sham baridan boshlab o'ngga extendBars sham x1 = int(bar_index[2]) x2 = int(bar_index[2] + extendBars) // Vertikal: 1-sham pastki wick ↔ 1-sham tanasi pastki cheti yLow = math.min(low1, bodyLow1) yHigh = math.max(low1, bodyLow1) box.new(x1=x1, y1=yHigh, x2=x2, y2=yLow, xloc=xloc.bar_index, bgcolor=fillColor, border_color=borderColor) // Alert uchun alertcondition(pattern, title="1-2-3 Pastki Wick Pattern", message="Pattern topildi: 1-sham zonasiga e'tibor bering.")
Eslatma: box.new
– to‘rtburchak chizish uchun to‘g‘ri obyekt; rect.new
yo‘q, shuning uchun “Undeclared identifier 'rect'” xatosi bo‘lgan.
Agar to‘rtburchak kengligini 3 sham qilmoqchi bo‘lsangiz, extendBars
ni 3 ga o‘zgartiring. Rang shaffofligi mos bo‘lsa ham, xalaqit qilsa, color.new(color.lime, 80)
dagi 80 ni 85–90 ga oshiring.
yuqoridagi xatolar togirlanibdi endi yana boshqa xatolar chiqibdi .
40-qatorni uzida 6 taxatolik bor : 1-The "box.new" function does not have an argument with the name "x1"
2-The "box.new" function does not have an argument with the name "y1"
3-The "box.new" function does not have an argument with the name "x2"
4-The "box.new" function does not have an argument with the name "y2"
5-No value assigned to the "top_left" parameter in box.new()
6-No value assigned to the "bottom_right" parameter in box.new()
Ha, to‘g‘ri: box.new()
da x1/y1/x2/y2
yo‘q. Pine v6’da u left, top, right, bottom
(yoki alternativ tarzda top_left
, bottom_right
) parametrlarini qabul qiladi. Quyida to‘g‘rilangan, kompilyatsiyasiz ishlaydigan versiya:
pine//@version=6 indicator("Pattern: 1-2-3 sham (pastki wick zonasi) [v6.1]", overlay=true) // — Sozlamalar extendBars = input.int(4, "To'g'ri to'rtburchak kengligi (shamlar soni)", minval=1, maxval=20) fillColor = input.color(color.new(color.lime, 80), "To'g'ri to'rtburchak rangi (yarim shaffof)") borderColor = input.color(color.new(color.lime, 0), "Chegara rangi") // — Dastlabki barlar yetarliligini tekshiramiz enoughBars = bar_index >= 2 // — 1-, 2-, 3-sham qiymatlari low1 = enoughBars ? low[2] : na bodyLow1 = enoughBars ? math.min(open[2], close[2]) : na low2 = enoughBars ? low[1] : na open2 = enoughBars ? open[1] : na close2 = enoughBars ? close[1] : na bodyLow2 = enoughBars ? math.min(open2, close2) : na low3 = enoughBars ? low : na // — Shartlar cond1 = enoughBars and (low2 < low1) // 2-sham wick’i 1-sham wick’idan past cond2 = enoughBars and (bodyLow2 >= low1) // 2-sham TANASI 1-sham pastki wickidan pastga tushmagan cond3 = enoughBars and (low3 < bodyLow1) and (low3 >= low1) // 3-sham wick’i tananing pastiga kiradi, lekin wickdan past emas pattern = cond1 and cond2 and cond3 // — Chizish (faqat bar yopilganda) if pattern and barstate.isconfirmed left = bar_index[2] right = bar_index[2] + extendBars yLow = math.min(low1, bodyLow1) yHigh = math.max(low1, bodyLow1) box.new(left=left, top=yHigh, right=right, bottom=yLow, xloc=xloc.bar_index, bgcolor=fillColor, border_color=borderColor) // — Alert alertcondition(pattern and barstate.isconfirmed, title="1-2-3 Pastki Wick Pattern", message="Pattern topildi: 1-sham zonasiga e'tibor bering.")
Nima o‘zgardi:
box.new(...)
endi left, top, right, bottom
bilan chaqirilmoqda — shuning uchun sizda paydo bo‘lgan 6 ta xato yo‘qoladi.barstate.isconfirmed
qo‘shildi: 3-sham yopilgandan keyin chizadi (repaint kamroq bo‘ladi).Agar xohlasangiz, top_left
va bottom_right
bilan ham yozish mumkin edi:
pine// Muqobil (xuddi shu mantiq): // box.new(top_left=box.point(left, yHigh), bottom_right=box.point(right, yLow), xloc=xloc.bar_index, ...)
Sinab ko‘rib ayting — yana xato chiqsa, qaysi qatorda ekanini yozing, tezda tuzatib beraman.
40-qatordagixatoliklar togirlanibdi . endi 34-qatorda xatolik chiqdi : Syntax error at input "end of line without line continuation"
Tushundim — bu xato odatda uzun funksiyani bir necha qatorga bo‘lib yozilganda yoki qator oxirida vergul/qavs yetishmaganda chiqadi. box.new(...)
va alertcondition(...)
chaqiruvlarini bitta qatorga tushirdim va faqat ASCII izohlar qoldirdim. Quyidagi kodni to‘liq almashtirib qo‘ying — kompilyatsiyasiz ishlaydi:
pine//@version=6 indicator("Pattern: 1-2-3 sham (pastki wick zonasi) [v6.2]", overlay=true) // Sozlamalar extendBars = input.int(4, "To'g'ri to'rtburchak kengligi (shamlar soni)", minval=1, maxval=20) fillColor = input.color(color.new(color.lime, 80), "To'g'ri to'rtburchak rangi (yarim shaffof)") borderColor = input.color(color.new(color.lime, 0), "Chegara rangi") // Barlar yetarliligini tekshirish enoughBars = bar_index >= 2 // 1-, 2-, 3-sham qiymatlari low1 = enoughBars ? low[2] : na bodyLow1 = enoughBars ? math.min(open[2], close[2]) : na low2 = enoughBars ? low[1] : na open2 = enoughBars ? open[1] : na close2 = enoughBars ? close[1] : na bodyLow2 = enoughBars ? math.min(open2, close2) : na low3 = enoughBars ? low : na // Shartlar cond1 = enoughBars and (low2 < low1) // 2-sham wick'i 1-sham wick'idan past cond2 = enoughBars and (bodyLow2 >= low1) // 2-sham tanasi 1-sham pastki wickidan past emas cond3 = enoughBars and (low3 < bodyLow1) and (low3 >= low1) // 3-sham wick'i tana pastiga kiradi, wickdan past emas pattern = cond1 and cond2 and cond3 // Chizish (3-sham yopilganda) if pattern and barstate.isconfirmed left = bar_index[2] right = bar_index[2] + extendBars yLow = math.min(low1, bodyLow1) yHigh = math.max(low1, bodyLow1) box.new(left=left, top=yHigh, right=right, bottom=yLow, xloc=xloc.bar_index, bgcolor=fillColor, border_color=borderColor) // Alert alertcondition(pattern and barstate.isconfirmed, title="1-2-3 Pastki Wick Pattern", message="Pattern topildi: 1-sham zonasiga e'tibor bering.")
Agar yana qator raqami bo‘yicha xato bersa, aynan o‘sha qatordagi vergul, qavs yoki kavichka (") larni tekshiring. Istasangiz, rang shaffofligini yanada oshirish uchun color.new(color.lime, 80)
dagi 80
ni 85–90
ga ko‘taring.