پارس‌کدرز چگونه کار می‌کند؟

از پارس‌کدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.

پارس‌کدرز خریداران یا کارفرمایان را به مجری‌ها /فریلنسرهای خبره‌ای متصل می‌کند که برای انجام پروژه آماده هستند.

تبدیل کد pine به پایتون(python)

چهار سال پیش منتشر شده

تعداد بازدید: 484

کد پروژه: 318303


شرح پروژه

سلام. میخوام کد اندیکاتور trendline V2 سایت تریدینگ ویو رو تبدیل به کد پایتون کنید که دقیقاً به  همون شکل عمل کنه.

کد نهایی باید با گرفتن یه لیست شامل اعداد، نمودار اعداد ورودی و خط روند رو رسم کنه(مشابه خط روند سایت تریدینگ ویو).

کد pine این اندیکاتور تو سایت هست. برای راحت شدن بررسی همینجا هم قرار میدم:

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

// © LonesomeTheBlue

//@version=4

study("Trend Lines v2", overlay=true, max_bars_back = 4000)

startyear = input(defval = 2020, title = "Start Year")

startmonth = input(defval = 1, title = "Start Month")

startday = input(defval = 1, title = "Start day")

prd = input(defval = 20, title="Pivot Period", minval = 10, maxval = 50)

PPnum = input(defval = 3, title="Number of Pivot Points to check", minval = 2, maxval = 6)

utcol = input(defval = color.lime, title = "Colors", inline = "tcol")

dtcol = input(defval = color.red, title = "", inline = "tcol")

float ph = pivothigh(prd, prd)

float pl = pivotlow(prd, prd)

var tval = array.new_float(PPnum)

var tpos = array.new_int(PPnum)

var bval = array.new_float(PPnum)

var bpos = array.new_int(PPnum)

add_to_array(apointer1, apointer2, val)=>

    array.unshift(apointer1, val)

    array.unshift(apointer2, bar_index)

    array.pop(apointer1)

    array.pop(apointer2)

if ph

    add_to_array(tval, tpos, ph)

if pl

    add_to_array(bval, bpos, pl)

// line definitions

maxline = 3

var bln = array.new_line(maxline, na)

var tln = array.new_line(maxline, na)

// loop for pivot points to check if there is possible trend line

countlinelo = 0

countlinehi = 0

starttime = timestamp(startyear, startmonth, startday, 0, 0, 0)

if time >= starttime

    for x = 0 to maxline - 1

        line.delete(array.get(bln, x))

        line.delete(array.get(tln, x))

    for p1 = 0 to PPnum - 2 

        uv1 = 0.0

        uv2 = 0.0

        up1 = 0

        up2 = 0

        if countlinelo <= maxline

            for p2 = PPnum - 1 to p1 + 1

                val1 = array.get(bval, p1)

                val2 = array.get(bval, p2)

                pos1 = array.get(bpos, p1)

                pos2 = array.get(bpos, p2)

                if val1 > val2

                    diff = (val1 - val2) / (pos1 - pos2)

                    hline = val2 + diff

                    lloc = bar_index

                    lval = low

                    valid = true

                    for x = pos2 + 1 - prd to bar_index

                        if close[bar_index - x] < hline

                            valid := false

                            break

                        lloc := x

                        lval := hline

                        hline := hline + diff

                    if valid

                        uv1 := hline - diff

                        uv2 := val2

                        up1 := lloc

                        up2 := pos2

                        break

        dv1 = 0.0

        dv2 = 0.0

        dp1 = 0

        dp2 = 0                

        if countlinehi <= maxline

            for p2 = PPnum - 1 to p1 + 1                

                val1 = array.get(tval, p1)

                val2 = array.get(tval, p2)

                pos1 = array.get(tpos, p1)

                pos2 = array.get(tpos, p2)

                if val1 < val2

                    diff = (val2 - val1) / float(pos1 - pos2)

                    hline = val2 - diff

                    lloc = bar_index

                    lval = high

                    valid = true

                    for x = pos2 + 1 - prd to bar_index

                        if close[bar_index - x] > hline

                            valid := false

                            break

                        lloc := x

                        lval := hline

                        hline := hline - diff

                    if valid

                        dv1 := hline + diff

                        dv2 := val2

                        dp1 := lloc

                        dp2 := pos2

                        break

        // if there is continues uptrend line then draw it

        if up1 != 0 and up2 != 0 and countlinelo < maxline

            countlinelo += 1

            array.set(bln, countlinelo - 1, line.new(up2 - prd, uv2, up1, uv1, color = utcol))

        // if there is continues downtrend line then draw it

        if dp1 != 0 and dp2 != 0 and countlinehi < maxline

            countlinehi += 1

            array.set(tln, countlinehi - 1, line.new(dp2 - prd, dv2, dp1, dv1, color = dtcol))

مهارت ها و تخصص های مورد نیاز


مهلت برای انجام

2روز

وضعیت مناقصه

بسته


درباره کارفرما

عضویت شش سال پیش

8 پروژه ثبت شده ،
0 پروژه در حال انجام ،
0 پروژه آماده دریافت پیشنهاد ،
نرخ پذیرش پیشنهاد 25%

برای پیدا کردن پروژه‌های مشابه ثبت نام کنید و پروفایل خود را بسازید.

ورود با گوگل
یا
نام نباید خالی باشد.
نام خانوادگی نباید خالی باشد.

نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟

سفارش پروژه مشابه

نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟

سفارش پروژه مشابه

قادر به انجام این پروژه هستید؟

ثبت نام کنید

متأسفانه مهلت ارسال پیشنهاد این پروژه به پایان رسیده و پروژه بسته شده است؛ اما فرصت‌های متعددی در سایت موجود می‌باشد.

سری به پروژه‌های مشابه بزنید

روش کار در پارس‌کدرز

به رایگان یک حساب کاربری بسازید

مهارت‌ها و تخصص‌های خود را ثبت کنید، رزومه و نمونه‌کارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.

به شیوه‌ای که دوست دارید کار کنید

برای پروژه‌های دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصت‌های شغلی منحصر به فرد دسترسی پیدا کنید.

با اطمینان دستمزد دریافت کنید

از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.

می‌خواهید شروع به کار کنید؟

یک حساب کاربری بسازید


بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارت‌های شما است.

پیدا کردن کار (پروژه)

تماشای دمو روش کار