جامعه QUANTCONNECT

ساخت وبلاگ

Lean موتور بازرگانی الگوریتمی منبع باز است. تأسیس در سال 2013 Lean توسط یک جامعه جهانی 80+ مهندس و قدرت بیش از دوجین صندوق پرچین ساخته شده است.

رقابت لیگ آلفا: استخر جایزه هفتگی 1000 دلار

واجد شرایط بودن جریانهای آلفا هفتگی مجدداً دوباره یاد بگیرید

|جایزه

بارگذاری.

بحث فیلتر توسط برچسب ها

سفیران جامعه

1 خیابان 2

با کمک به دیگران اعتبار Cloud Cloud را به دست آورید ، هر هفته اعتبار هوایی را به فعال ترین اعضای جامعه می دهیم.

229،640 Quants.

اکنون آنلاین

در ارتباط باش

با آخرین به روزرسانی ها با هشدارهای ایمیل یا پیوستن به سرور Discord ما در ارتباط باشید.

Backtests

Comments

Live Traded

نمونه های شاخص (BB ، MACD ، SMA ، EMA ، RSI ، ATR)

آغاز شده توسط:

جایزه بحث و گفتگو در مورد پاداش بحث را دنبال کنید

سرمایه گذار جارد گسترده

|بحث در مورد پاداش

با درخواست محبوب ، من یک پروژه مثال با شاخص های مشترک تهیه کرده ام ، از جمله: باند های بولینگر ، میانگین حرکت ساده ، میانگین حرکت نمایی ، شاخص قدرت نسبی ، میانگین دامنه واقعی و MACD. در پایین الگوریتم ما آنها را با قیمت ترسیم می کنیم. من همچنین آن را تنظیم کرده ام تا از ادغام های روزانه استفاده کنم - از این طریق توطئه ها مانند موارد مشخصی که در سایر وب سایت های نمودار سهام مشاهده خواهید کرد ، به نظر می رسند.

موتور شاخص ها را به طور خودکار به روز می کند و مقدار را از طریق خروجی الگوریتم ها برای نمودار تغذیه می کند! این یک سیستم بسیار جالب در زیر کاپوت است. توصیه می کنم به پروژه GitHub نگاه کنید.

سلب مسئولیت

مطالب موجود در این وب سایت فقط برای اهداف اطلاع رسانی ارائه شده است و پیشنهادی برای فروش ، درخواست خرید یا توصیه یا تأیید برای هرگونه امنیت یا استراتژی را تشکیل نمی دهد ، و همچنین پیشنهادی برای ارائه خدمات مشاوره سرمایه گذاری توسط QuantCoect ندارد. علاوه بر این ، این مواد با توجه به مناسب بودن هرگونه امنیت یا سرمایه گذاری خاص هیچ عقیده ای ارائه نمی دهند. QuantCoect هیچ تضمینی در مورد صحت یا کامل بودن نظرات بیان شده در وب سایت ندارد. این دیدگاه ها در معرض تغییر هستند و ممکن است به دلایل مختلف از جمله تغییر در شرایط بازار یا شرایط اقتصادی غیرقابل اعتماد باشد. کلیه سرمایه گذاری ها شامل ریسک ، از جمله از دست دادن مدیر است. شما باید قبل از تصمیم گیری در مورد سرمایه گذاری با یک متخصص سرمایه گذاری مشورت کنید.

شاخص ها برداشتن سلب مسئولیت

مطالب موجود در این وب سایت فقط برای اهداف اطلاع رسانی ارائه شده است و پیشنهادی برای فروش ، درخواست خرید یا توصیه یا تأیید برای هرگونه امنیت یا استراتژی را تشکیل نمی دهد ، و همچنین پیشنهادی برای ارائه خدمات مشاوره سرمایه گذاری توسط QuantCoect ندارد. علاوه بر این ، این مواد با توجه به مناسب بودن هرگونه امنیت یا سرمایه گذاری خاص هیچ عقیده ای ارائه نمی دهند. QuantCoect هیچ تضمینی در مورد صحت یا کامل بودن نظرات بیان شده در وب سایت ندارد. این دیدگاه ها در معرض تغییر هستند و ممکن است به دلایل مختلف از جمله تغییر در شرایط بازار یا شرایط اقتصادی غیرقابل اعتماد باشد. کلیه سرمایه گذاری ها شامل ریسک ، از جمله از دست دادن مدیر است. شما باید قبل از تصمیم گیری در مورد سرمایه گذاری با یک متخصص سرمایه گذاری مشورت کنید.

85. 1k Pro ، انحراف معیار؟

با تشکر از Tadas - من الگوریتم QCU را به روز کردم تا شامل انحراف استاندارد ، آروون و حرکت نیز شود.

سلب مسئولیت

مطالب موجود در این وب سایت فقط برای اهداف اطلاع رسانی ارائه شده است و پیشنهادی برای فروش ، درخواست خرید یا توصیه یا تأیید برای هرگونه امنیت یا استراتژی را تشکیل نمی دهد ، و همچنین پیشنهادی برای ارائه خدمات مشاوره سرمایه گذاری توسط QuantCoect ندارد. علاوه بر این ، این مواد با توجه به مناسب بودن هرگونه امنیت یا سرمایه گذاری خاص هیچ عقیده ای ارائه نمی دهند. QuantCoect هیچ تضمینی در مورد صحت یا کامل بودن نظرات بیان شده در وب سایت ندارد. این دیدگاه ها در معرض تغییر هستند و ممکن است به دلایل مختلف از جمله تغییر در شرایط بازار یا شرایط اقتصادی غیرقابل اعتماد باشد. کلیه سرمایه گذاری ها شامل ریسک ، از جمله از دست دادن مدیر است. شما باید قبل از تصمیم گیری در مورد سرمایه گذاری با یک متخصص سرمایه گذاری مشورت کنید.

85. 1k Pro ،

با تشکر ، jared ، اگرچه من در جایی دیدم که چه مقادیری به شاخص های مختلف می رود: D

همچنین ، جستجو ، اما پیدا نکردید که چگونه استفاده کنید ، بیایید بگوییم Ondata (Importdata ID) به همراه Ondata معمول (داده های TradeBars)؟

من سعی می کنم اسناد جدید را در این آخر هفته TT فشار دهم - در حال حاضر شما می توانید خود کلاس ها را جستجو کنید تا خواص هر شاخص را بدانید. به عنوان مثال. aroon up - https://github. com/quantcoect/lean/blob/master/indicators/aroonoscillator. cs#l31

من دوباره الگوریتم را به روز کردم تا نمونه ای از یک نشانگر RSI را در داده های سفارشی گنجانده کنم. به جای آن 3 خط طول می کشد زیرا شما باید به ما بگویید که چگونه آن را با هم ادغام کنیم ، و سپس کلاس نشانگر را برای به روزرسانی داده ها به صورت دستی ثبت یا مشترک کنید.

سلب مسئولیت

مطالب موجود در این وب سایت فقط برای اهداف اطلاع رسانی ارائه شده است و پیشنهادی برای فروش ، درخواست خرید یا توصیه یا تأیید برای هرگونه امنیت یا استراتژی را تشکیل نمی دهد ، و همچنین پیشنهادی برای ارائه خدمات مشاوره سرمایه گذاری توسط QuantCoect ندارد. علاوه بر این ، این مواد با توجه به مناسب بودن هرگونه امنیت یا سرمایه گذاری خاص هیچ عقیده ای ارائه نمی دهند. QuantCoect هیچ تضمینی در مورد صحت یا کامل بودن نظرات بیان شده در وب سایت ندارد. این دیدگاه ها در معرض تغییر هستند و ممکن است به دلایل مختلف از جمله تغییر در شرایط بازار یا شرایط اقتصادی غیرقابل اعتماد باشد. کلیه سرمایه گذاری ها شامل ریسک ، از جمله از دست دادن مدیر است. شما باید قبل از تصمیم گیری در مورد سرمایه گذاری با یک متخصص سرمایه گذاری مشورت کنید.

85. 1k Pro ،

آه ، خوب ، متشکرم ، اکنون شروع به انتخاب آن کردم. سکوی QC خیلی انعطاف پذیر است :) قطعه گمشده برای من این بود:

var bitcoinitientityconsolidator = IdentityDataconsolidator جدید () ؛

146 طرفدار ،

من در مورد این مثال چند سؤال دارم. چگونه می توانم کد را اصلاح کنم که شاخص ها به جای نوار روزانه یا دقیقه در میله 30 دقیقه محاسبه می شوند. من مطمئن نیستم که چگونه می توانم به شاخص ها برای کار بر روی اوراق بهادار متعدد تنظیم و دسترسی پیدا کنم.

Public void ondata (داده های TradeBars)

foreach(var symbol in Securities.Keys) if (data["symbol"].High>_bb. upperband ["نماد"]);>

50. 5k Pro ،

سلام Johy! من دوست دارم از الگویی که از آن به عنوان Symboldata یاد می کنم استفاده کنم. در اینجا پیوندی به یک موضوع وجود دارد که نمونه ای از آن را نشان می دهد.

146 طرفدار ،

از پیشنهاد فوق العاده شما متشکرممن الگوی اصلی را برای اداره چندین اوراق بهادار اصلاح کردم. با این حال ، من هنوز مطمئن نیستم که در مورد قطعنامه چه کاری انجام دهم.

آیا برای QuantCoect امکان استفاده از چندین وضوح با هر شاخص وجود دارد؟سابق. برای RSI ، 5 دقیقه ای برای RSI ، 10 دقیقه بار برای EMA و 30 بار میله برای SMA استفاده کنید؟

50. 5k Pro ،

به نظر می رسد که شما باید از سیستم Consolidator استفاده کنید! تلفیقی می تواند داده های با وضوح بالا (تیک ، دوم ، دقیقه ، ECT.) را بدست آورد و آن را به داده های با وضوح پایین تر (5 دقیقه ، 45 دقیقه ، هر چیز دیگری) جمع کند.

در این موضوع اوج داشته باشید که نشان می دهد چگونه می توانید یک تلفیقی و شاخص هایی که به تلفیقی بستگی دارد ، ایجاد کنید. برای چندین بازه زمانی ، به چندین تلفیقی نیاز دارید.

یک نکته مهم ، یک تلفیقی فقط با یک نماد قابل استفاده است! بنابراین اگر چندین نماد را انجام می دهید ، در هر بازه زمانی (5 دقیقه ، 10min ، ect.) به یک تلفیقی در هر نماد نیاز دارید.

146 طرفدار ،

آیا اگر می خواستم از 15 دقیقه بار بولینجر ایجاد کنم ، چنین کاری کار می کند؟همچنین ، آیا راهی برای عبور از نوار باز ، بالا ، پایین و نزدیک به کلاس Symboldata وجود دارد؟بار دیگر ممنون بابت کمکتان.

عمومی Symboldata (نماد رشته ، الگوریتم QCalgorithm)

Symbol = symbol; _bb = new BollingerBands(50, 3, MovingAverageType.Simple); algorithm.RegisterIndicator(Symbol, _bb, TimeSpan.FromMinutes(15));>

50. 5k Pro ،

به نظر می رسد BollingerBands به درستی ایجاد می شود. برای تأیید آن سعی کنید آن را ترسیم کنید. در مورد انتقال در داده های OHLC ، روش های مختلفی برای انجام این کار وجود دارد. آیا می خواهید روشی با داده ها فراخوانی شود؟

شما می توانید یک Symboldata. ondata (نوار تجارت) را تعریف کنید که از روش ONDATA الگوریتم شما خوانده می شود.

2. 5k Pro ،

جارد ، آیا منظورتان این بود که شاخص ها و همچنین قیمت یا بالای قیمت را ترسیم کرده اید ، زیرا وقتی آن را اجرا می کنم ، نمودارهای جداگانه ای دریافت می کنم. آیا شما بچه ها راه حلی برای ترسیم سابق را فهمیدید. 2 EMA های مختلف در بالای قیمت؟

50. 5k Pro ،

کد زیر دو EMA را در بالای قیمت بسته شدن جاسوسی در وضوح ثبت شده ترسیم می کند: VAR Price = هویت ("جاسوسی") ؛var fast = ema ("جاسوسی" ، 7) ؛var slow = ema ("جاسوسی" ، 14) ؛PlotIndicator ("جاسوسی" ، قیمت ، سریع ، کند) ؛

در زیر کد پیوست شده در زیر یک طرح جدید به نام "جاسوسی" برای قیمت و EMA ایجاد کنید.

1. 4K Pro ،

آیا راهی برای قرار دادن این موضوع در "StockPlot" وجود دارد که نشان می دهد چه زمانی الگوریتم در بازار حرکت می کند؟

2. 5k Pro ، اوه خوب ، عالی متشکرم مایکل! سوال خوب استفان که بسیار مفید خواهد بود 50. 5k Pro ،

من فکر می کنم قرار دادن توطئه های اجرای در نمودار نشانگر سفارشی آسانتر (و عمومی تر) آسان تر خواهد بود. به عنوان مثال ، اگر با MACD و RSI در نمودارهای جداگانه کار می کنید ، ممکن است تهیه یک طرح پراکندگی در هر یک از این نمودارها با امتیاز خرید/فروش مفید باشد. نگاهی به QCU بیندازید که چگونه نمودارهای سفارشی ایجاد کنم؟در برگه دانشگاه موجود است. این جزئیات نحوه تعریف برخی از نمودارهای سفارشی ، از جمله امتیاز خرید/فروش را نشان می دهد.

اگر می خواهید داده های قیمت در نمودار سفارشی خود پوشانده شوند ، می توانید از: plotIndicator ("myCustomChartName" ، هویت ("جاسوسی" ، وضوح. daily)) استفاده کنید. این باعث می شود قیمت جاسوسی روزانه بسته به عنوان یک سری به نمودار "MyCustomChartName" اضافه شود.

1. 4K Pro ،

کاملاً درست استمن این کار را کردم و در حال اجرا هستم. متشکرم! اکنون یک سوال دیگر که من آن را دارم:

من از این طرح برای کمک به اشکال زدایی الگوریتم خود استفاده می کنم. آیا راهی برای تنظیم مقیاس عمودی وجود دارد؟من می دانم که شما می توانید به راحتی افقی را تنظیم کنید ، اما گاهی اوقات دیدن آن هنوز دشوار است.

دوباره متشکرم!

50. 5k Pro ، متأسفانه ما در حال حاضر نمی توانیم مقیاس عمودی را تنظیم کنیم 1. 4K Pro ، آه ، مشکلی نیستدوباره برای کمک سپاسگزارم. 1. 4K Pro ،

آیا راهی برای محاسبه این محاسبه در نزدیکی وضوح تنظیم وجود دارد؟

fast = ema (نماد ، 25 ، وضوح. minute) ؛

چیزی شبیه به این (بدیهی است که کار نمی کند اما نوع نشان می دهد که منظور من چیست):

fast = ema (نماد ، 25 ، وضوح. minute. close) ؛

50. 5k Pro ،

By default any single dimension indicator (SMA, EMA, ect..) uses the closing of the bar. If you'd like to use something else, you can specify a function that selects what value to use: fast = EMA(Symbol, 25, Resolution.Minute, baseData =>((TradeBar) مبتنی بر) . IGH) ؛برخی از یاران وجود دارند که این کار را آسان تر می کنند ، بنابراین موارد فوق را می توان به صورت زیر نوشت: Fast = EMA (نماد ، 25 ، وضوح. minute ، field. high) ؛در اینجا پیوندی به کلاس فیلد وجود دارد.

146 طرفدار ،

وقتی سعی کردم از Consolidator در پشتی استفاده کنم ، این خطای زیر را دریافت می کنم. روش مناسب برای ثبت شاخص چیست؟

"Backtest Error: Error initializing algorithm: Type mismatch found between consolidator and indicator for symbol: DIA.Consolidator outputs type TradeBar but indicator expects input type IndicatorDataPoint" public SymbolData(string symbol, QCAlgorithm algorithm) Symbol = symbol; _bb = new BollingerBands(100, 3, MovingAverageType.Simple); _atr = new AverageTrueRange(100, MovingAverageType.Simple); algorithm.RegisterIndicator(Symbol, _bb, TimeSpan.FromMinutes(15)); algorithm.RegisterIndicator(Symbol, _atr, TimeSpan.FromMinutes(30));>

50. 5k Pro ،

سلام جانی ، شما باید برخی از کد اولیه خود را درج کنید. از پیام خطا ، نماد با شماره "Dia" است. آیا این داده های سفارشی است؟پیام خطا می گوید شما در حال تلاش برای ثبت شاخصی هستید که یک مقدار واحد (مانند نزدیک یا زیاد) را می پذیرد اما با عبور از یک تجارت کامل. می توانید "field. close" را به تماس ثبت نام برای "_bb" اختصاص دهید. اگر هنوز مشکلی دارید ، لطفاً الگوریتم کامل را به اشتراک بگذارید و ما می توانیم کمک بیشتری کنیم!

146 طرفدار ،

با تشکر از شما برای نگاهی به کد من. DIA یک ETF است که DOW 30 را ردیابی می کند. این یک نماد استاندارد در پایگاه داده QuantCoect است. اگر سعی کنم زمینه را ضمیمه کنم. سپس باید به جای دهانه زمان از کلاس وضوح QuantCoection استفاده کنم. در حال حاضر روشی وجود دارد که وضوح را به Timespan تبدیل می کند. آیا فکر می کنید امکان اجرای ویژگی ای وجود دارد که Timespan را به وضوح تبدیل می کند و به ما امکان می دهد قطعنامه های سفارشی خود را ایجاد کنیم.

همچنین ، ویژگی با استفاده از رشته ها برای نماد اکنون کاهش یافته است. از کجا می توانم یک نماد SID پیدا کنم؟این اطلاعات در مدیر داده نمایش داده نمی شود.

استفاده از سیستم ؛با استفاده از quantcoect. data. market ؛با استفاده از quantcoect. securities ؛با استفاده از quantcoect. indicators ؛با استفاده از system. collections. generic ؛با استفاده از system. linq ؛با استفاده از QuantCoect. Algorithm. Csharp. MyTradingStrategies ؛

namespace quantcoect. algorithm کلاس عمومی bollingerbandsalgorithm: qcalgorithm class symboldata public readonly نماد رشته ؛عمومی BollingerBands readonly _bb ؛عمومی readonly averagetruerange _atr ؛BOOL عمومی IsReady>

public SymbolData(string symbol, QCAlgorithm algorithm) Symbol = symbol; _bb = new BollingerBands(100, 3, MovingAverageType.Simple); _atr = new AverageTrueRange(100, MovingAverageType.Simple); algorithm.RegisterIndicator(Symbol, _bb, TimeSpan.FromMinutes(15)); algorithm.RegisterIndicator(Symbol, _atr, TimeSpan.FromMinutes(15));>>نمادهای لیست خصوصی = لیست جدید ()<"DIA", "DXJ", "EEM", "EFA", "EWZ", "FXI", "GDX","IWM", "IYR", "QQQ", "SPY", "XLB", "XLE","XLF", "XLI", "XLK", "XLP", "XLU", "XLV", "XLY">;

نمادهای فرهنگ لغت خصوصی = فرهنگ لغت جدید () ؛

// داده ها و وضوح مورد نیاز خود را برای استراتژی خود تنظیم کنید: عمومی Override Void Initialize () // اولیه سازی SetStartDate (2007 ، 1 ، 1) ؛setEndDate (dateTime. Now. Adddays (-1)) ؛setCash (100000) ؛

foreach (var symbol in symbols) AddSecurity(SecurityType.Equity, symbol, Resolution.Minute); Symbols.Add(symbol, new SymbolData(symbol, this));>>

public void ondata (داده های TradeBars) foreach (var Symboldata در نمادها. Values) if (! symboldata. isReady || data. containskey (symboldata. symbol)) بازگشت.

if (!Portfolio.HoldStock) var _buyPrice = symbolData._bb.LowerBand; var _buySignal = data[symbolData.Symbol].Close>_buyprice ؛if (_buysignal)> else var _sellPrice = symbolData._bb.UpperBand; var _sellSignal = data[symbolData.Symbol].Close>_قیمت فروش؛if (_sellsignal)>>>>>

50. 5k Pro ،

سلام جانی ، من اضافه بار درخواست شده را اضافه کردم. در استقرار بعدی در دسترس خواهد بود. فقط یک سر به بالا ، با ATR کار نخواهد کرد زیرا انتخاب کننده میدان مورد نیاز ATR به یک نوار ترازو نیاز دارد.

روش Toresolution یک ایده عالی است ، اما ممکن است نیاز به کمی فکر در پایان ما داشته باشد زیرا این یک شمارش گسترده است.

یک راه حل جایگزین این است که کلاس Symboldata شما یک TradeBarconsolidator را بپذیرید که می توانید از روش اولیه خود ایجاد کنید: VAR Consolidator = TradeBarconsolidator جدید (Timespan. Fromminutes (15)). سپس اضافه بار در دسترس است که پارامتر فیلد را می پذیرند.

144 طرفدار ،

با تشکر از شما برای این کار خوب/سخت ، خیلی به من کمک می کند اما من کد را می بینم که می خواهم بدانم کد در آنجا می فروشد! چه زمانی فروش؟[Mehod کجا با کد می فروشد]؟

312 طرفدار ،

آیا ما یک پایتون از این شاخص ها داریم؟

اگر روی شاخص های موجود در اسناد کلیک کنید ، بسته به آنها آنها را مشاهده خواهید کرد

ترجیحات زبان شما

سلب مسئولیت

مطالب موجود در این وب سایت فقط برای اهداف اطلاع رسانی ارائه شده است و پیشنهادی برای فروش ، درخواست خرید یا توصیه یا تأیید برای هرگونه امنیت یا استراتژی را تشکیل نمی دهد ، و همچنین پیشنهادی برای ارائه خدمات مشاوره سرمایه گذاری توسط QuantCoect ندارد. علاوه بر این ، این مواد با توجه به مناسب بودن هرگونه امنیت یا سرمایه گذاری خاص هیچ عقیده ای ارائه نمی دهند. QuantCoect هیچ تضمینی در مورد صحت یا کامل بودن نظرات بیان شده در وب سایت ندارد. این دیدگاه ها در معرض تغییر هستند و ممکن است به دلایل مختلف از جمله تغییر در شرایط بازار یا شرایط اقتصادی غیرقابل اعتماد باشد. کلیه سرمایه گذاری ها شامل ریسک ، از جمله از دست دادن مدیر است. شما باید قبل از تصمیم گیری در مورد سرمایه گذاری با یک متخصص سرمایه گذاری مشورت کنید.

94. 7k Pro ،

من دستورالعمل شما را دنبال کردماین مرا به https://github. com/quantcoect/lean/blob/master/algorithm. python/indicatorateuitealgorithm. py من کپی و چسباندن کد می رساند.

# QuantCoect. com - امور مالی دموکراتیک ، توانمندسازی افراد.# موتور تجارت الگوریتمی لاغر v2. 0. کپی رایت 2014 شرکت QuantCoect.# # دارای مجوز تحت مجوز Apache ، نسخه 2. 0 ("مجوز") ؛# شما ممکن است از این پرونده استفاده نکنید به جز مطابق با مجوز.# شما می توانید یک نسخه از مجوز را در http://www. apache. org/licenses/license-2. 0 # # بدست آورید ، مگر اینکه توسط قانون قابل اجرا مورد نیاز باشد یا به صورت کتبی موافقت شود ، نرم افزار # توزیع شده تحت مجوز "توزیع شده است""مبنای" ، # بدون ضمانت یا شرایط از هر نوع ، صریح یا ضمنی است.# مجوز برای مجوزهای حاکم بر زبان خاص و محدودیت های # تحت مجوز را ببینید.

از AddReference AddReference ("System") AddReference ("QuantCoect. Algorithm") AddReference ("QuantCoect. common") افزودن ("quantcoect. indicators")

از واردات سیستم * از واردات quaect * از quantcoect. Indicators * واردات quantcoect. data * از quantcoect. data. market واردات * از quantcoect. data. custom * از quantcoect. algorithm واردات * از quantcoect. python * واردات * واردات *

###

### الگوریتم الگوی اساسی به سادگی محدوده تاریخ و پول نقد را آغاز می کند. این یک چارچوب اسکلت ### است که می توانید برای طراحی الگوریتم استفاده کنید.###

### ### ### نشانگرهای کلاس کلاس (QCalgorithm): '' 'الگوریتم تظاهرات شاخص های محبوب و ترسیم آنها.' ''

 

 

DEF Initialize (خود): '' 'داده ها و وضوح مورد نیاز ، و همچنین تاریخ های نقدی و شروع را برای الگوریتم خود آغاز کنید. همه الگوریتم ها باید اولیه شوند. '' '

 

self. symbol = "spy" self. customsymbol = "wiki/fb" self. price = none

 

self. setStartDate (2013 ، 1 ، 1) #Set Start Date Self. SetEndDate (2014 ، 12 ، 31) #Set Date Self. SetCash (25000) #Set Strategy Cash #پیدا کردن نمادهای بیشتر در اینجا: http: // quantcoect. com/داده ها

 

self. addequity (self. symbol ، قطعنامه. daily) self. adddata (quandl ، self. customsymbol ، وضوح. daily)

 

# Set up default Indicators, these indicators are defined on the Value property of incoming data (except ATR and AROON which use the full TradeBar object) self.indicators = 'BB' : self.BB(self.symbol, 20, 1, MovingAverageType.Simple, Resolution.Daily), 'RSI' : self.RSI(self.symbol, 14, MovingAverageType.Simple, Resolution.Daily), 'EMA' : self.EMA(self.symbol, 14, Resolution.Daily), 'SMA' : self.SMA(self.symbol, 14, Resolution.Daily), 'MACD' : self.MACD(self.symbol, 12, 26, 9, MovingAverageType.Simple, Resolution.Daily), 'MOM' : self.MOM(self.symbol, 20, Resolution.Daily), 'MOMP' : self.MOMP(self.symbol, 20, Resolution.Daily), 'STD' : self.STD(self.symbol, 20, Resolution.Daily), # by default if the symbol is a tradebar type then it will be the min of the low property 'MIN' : self.MIN(self.symbol, 14, Resolution.Daily), # by default if the symbol is a tradebar type then it will be the max of the high property 'MAX' : self.MAX(self.symbol, 14, Resolution.Daily), 'ATR' : self.ATR(self.symbol, 14, MovingAverageType.Simple, Resolution.Daily), 'AROON' : self.AROON(self.symbol, 20, Resolution.Daily)>

 

# Here we're going to define indicators using 'selector' functions. These 'selector' functions will define what data gets sent into the indicator # These functions have a signature like the following: decimal Selector(BaseData baseData), and can be defined like: baseData => baseData.Value # We'll define these 'selector' functions to select the Low value # # For more information on 'anonymous functions' see: http:#en.wikipedia.org/wiki/Anonymous_function # https:#msdn.microsoft.com/en-us/library/bb397687.aspx # self.selectorIndicators = 'BB' : self.BB(self.symbol, 20, 1, MovingAverageType.Simple, Resolution.Daily, Field.Low), 'RSI' :self.RSI(self.symbol, 14, MovingAverageType.Simple, Resolution.Daily, Field.Low), 'EMA' :self.EMA(self.symbol, 14, Resolution.Daily, Field.Low), 'SMA' :self.SMA(self.symbol, 14, Resolution.Daily, Field.Low), 'MACD' : self.MACD(self.symbol, 12, 26, 9, MovingAverageType.Simple, Resolution.Daily, Field.Low), 'MOM' : self.MOM(self.symbol, 20, Resolution.Daily, Field.Low), 'MOMP' : self.MOMP(self.symbol, 20, Resolution.Daily, Field.Low), 'STD' : self.STD(self.symbol, 20, Resolution.Daily, Field.Low), 'MIN' : self.MIN(self.symbol, 14, Resolution.Daily, Field.High), 'MAX' : self.MAX(self.symbol, 14, Resolution.Daily, Field.Low), # ATR and AROON are special in that they accept a TradeBar instance instead of a decimal, we could easily project and/or transform the input TradeBar # before it gets sent to the ATR/AROON indicator, here we use a function that will multiply the input trade bar by a factor of two 'ATR' : self.ATR(self.symbol, 14, MovingAverageType.Simple, Resolution.Daily, Func[IBaseData, IBaseDataBar](self.selector_double_TradeBar)), 'AROON' : self.AROON(self.symbol, 20, Resolution.Daily, Func[IBaseData, IBaseDataBar](self.selector_double_TradeBar))># نشانگر داده های سفارشی: self. rsicustom = self. rsi (self. customsymbol ، 14 ، moveaverageType. simple ، وضوح. daily) self. mincustom = self. min (self. customsymbol ، 14 ، incolucy. daily) self. maxcustom = خود. max (self. customsymbol ، 14 ، وضوح

 

# علاوه بر تعریف شاخص ها در مورد یک امنیت واحد ، همه می توانید شاخص های "کامپوزیت" را تعریف کنید.# این شاخص هایی هستند که به ورودی های متعدد نیاز دارند. رایج ترین آنها نسبت است.# فرض کنید ما به دنبال نسبت BTC به جاسوسی هستیم ، می توانیم موارد زیر را بنویسیم: spyclose = هویت (self. symbol) fbclose = هویت (self. customsymbol)

 

# این یک شاخص جدید ایجاد می کند که مقدار آن fb/spy self. ratio = indentorextensions. over (fbclose ، spyclose) است

 

# ما همچنین می توانیم هر بار که به روزرسانی می کنند با استفاده از عملکرد plotindicator self. plotindicator ("نسبت" ، self. ratio) شاخص های خود را به راحتی ترسیم کنیم.

 

# روشهای زیر نمودارهای مختلفی را به خروجی الگوریتم اضافه می کنند.# این نامهای چت ها بعداً برای ترسیم سری های مختلف در یک نمودار خاص استفاده می شوند.# برای اطلاعات بیشتر در مورد نمودار لاغر ، به: https://www. quantcoect. com/docs#charting نمودار (نمودار "BB") نمودار ('STD') نمودار ('AROON') نمودار ('MACD')نمودار ("میانگین") # در اینجا ما از روش Schelude برای به روزرسانی توطئه ها یک بار در روز در بازار استفاده می کنیم. self. schedule. on (self. daterules. everyday () ، self. timerules. beforemarketclose (self. symbol) ، self. update_plots)

 

def ondata (خود ، داده): '' 'رویداد ondata نقطه اصلی ورود الگوریتم شماست. هر نقطه داده جدید در اینجا پمپ می شود. آرگومان ها: داده ها: شیء SLICE توسط نماد حاوی داده های سهام "" "

 

if (#not data. bars. containskey (self. symbol) یا نه self. indicators ['bb']. IsReady یا Not Self. indicators ['RSI']. IsReady): بازگشت

 

اگر نه selffolio. holdstock: مقدار = int (self. portfolio. cash / self. price) self. order (self. symbol ، کمیت) self. debug ('spy خریداری شده در' + self. time. strftime ('٪y- ٪ m- ٪ d '))

 

def update_plots (خود): اگر نه self. indicators ['bb']. isredy یا نه self. indicators ['std'].

 

# توطئه ها همچنین می توانند فقط با این دستور یک خط ایجاد شوند. self. plot ('rsi' ، self. indicators ['rsi']) # شاخص داده های سفارشی self. plot ('rsi-fb' ، self. rsicustom)

 

# در اینجا ما از چت های decalred در روش اولیه استفاده می کنیم و چندین سری # را در هر نمودار ترسیم می کنیم. self. plot ('std' ، 'std' ، self. indicators ['std']. current. value)

 

self. plot ('bb' ، 'price' ، self. price) self. plot ('bb' ، 'bollingerupperband' ، self. indicators ['bb']. urpband. current. value) self. plot ('bb'، "bollingermiddleband" ، self. indicators ['bb']. middband. current. value) self. plot ('bb' ، 'bollingerlowerband' ، self. indicators ['bb']. lownband. current. value)

 

self. plot ('aroon' ، 'aron' ، self. indicators ['aroon']. current. value) self. plot ('aroon' ، 'aroonup' ، self. indicators ['aroon']. aroonup. current. ارزش) self. plot ('aroon' ، 'arroondown' ، self. indicators ['aroon']. arroondown. current. value)

 

#تماسهای روش زیر به دلیل محدودیت 10 سری برای Backtests #Self. plot ('ATR' ، 'ATR' ، Self. indicators ['ATR']. فعلی. Value) #self. plot ('ATR اظهار نظر می شود.'،' Atrdoublebar '، self. eselectorIcators [' ATR ']. فعلی. Value) #self. plot (' Anaineages '،' Sma '، self. indicators [' SMA ']. فعلی. Value) #self. plot ("میانگین" ، "ema" ، self. indicators ['ema']. current. value) #self. plot ('mom' ، self. indicators ['mom']. current. value) #self. plot ('momp'، self. indicators [' momp ']. فعلی. value) #self. plot (' macd '،' macd '، self. indicators [' macd ']. current. value) #self. plot (' macd '،'MacDsignal' ، self. indicators ['MACD']. signal. current. value)

 

def selector_double_tradebar (خود ، نوار): trade_bar = tradebar () trade_bar. close = 2 * bar. close trade_bar. datatype = bar. datatype trade_bar. high = 2 * bar. high trade_bar. low = 2 * bar. low trade_bar. bar. par. low. bar. par. low. bar. par. low. bar. par. low. bar. par. low. low. bar. par. low. low. low. bar. par. low. low. low. low. bar. par. low. low. low. low. low. low. bar. low. bar. par. low.= 2 * bar. open trade_bar. symbol = bar. symbol trade_bar. time = bar. time trade_bar. value = 2 * bar. value trade_bar. period = bar. Period Retu trade_bar

استراتژی‌های اسکالپ...
ما را در سایت استراتژی‌های اسکالپ دنبال می کنید

برچسب : نویسنده : جعفر بدیعی بازدید : <-PostHit-> تاريخ : دوشنبه 2 مرداد 1402 ساعت: 23:36