انجمن QuantConnect

  • 2021-09-18

LEAN موتور تجارت الگوریتمی منبع باز است که QuantConnect را تامین می کند. LEAN که در سال 2013 تاسیس شد توسط جامعه جهانی متشکل از 80 مهندس و بیش از 12 صندوق تامینی امروزی ساخته شده است.

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

جریان‌های آلفای واجد شرایط که به صورت هفتگی دوباره وارد می‌شوند بیشتر بیاموزید

فیلتر بحث بر اساس برچسب

220, 692 کوانت.

اکنون آنلاین

وصل بمون

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

Backtests

Comments

Live Traded

تنظیم استاپ ضرر و برداشت سود

شروع شده توسط:

برنان نیلی سرمایه گذار

سلام، من بخش راهنما را جستجو کردم و چیز زیادی در رابطه با تنظیم سطوح SL/TP در دستورات اجرای بازار پیدا نکردم. من سعی کرده‌ام راه‌حل‌هایی برای این مشکل بیابم و این چیزی است که تا به حال به ذهنم رسیده است http://imgur. com/a/FpsJl من می‌دانم در حال حاضر که SL/TP کاملاً بسته است، چگونه می‌توانم پایه‌گذاری کنم. آیا از قیمت یک سفارش اجرا شده خارج است؟

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

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

در واقع ، QuantConnect دارای محدوده ها و سفارشات متوقف شده است.

من از آنها مانند این استفاده می کنم ، هنگام قرار دادن سفارش: limitorder (نماد ، -Quantity ، جریان فعلی * (1m + profittargetpercent)) stopmarketorder (نماد ، -Quantity ، جریان فعلی * (1 m-stoplosspercent))

با عرض پوزش اگر این به نظر می رسد مانند یک سوال گنگ است ، اما چگونه می توانم پارامتر فعلی Price را برای آینه واقعی زمان زنده تنظیم کنم؟

من همزمان که خرید می کنم ، محدودیت ها و stopmarketorders ایجاد می کنم. بنابراین ، CurrentPrice قیمت خرید است ، و من از دست دادن توقف یا هدف سود نسبت به قیمت خرید ، دقیقاً مانند کاری که در مثال کد خود انجام می دهید ، تعیین کردم.

شاید برخی از کد های نمونه کمک کنند. در اینجا مثالی وجود دارد که سهام را خریداری می کند ، یک ایستگاه را تنظیم می کند ، سپس Stoploss را به روز می کند.

با تشکر از کد ، فقط یک سوال دیگر. بر اساس کدی که من می خوانم ، آیا Stop Loss از "توقف دنباله" تقلید می کند یا این کار سخت است (استاتیک و غیر متحرک)؟http://imgur. com/levofqv

از دست دادن توقف ایجاد شده در این خط کد یک "مجموعه سخت" است: StopLoss = StopmarkEtorder (نماد ، -Quantity ، CurrentPrice * (1m - stoplosspercent)) ؛

اگر می خواهید یک توقف دنباله دار را تقلید کنید ، باید بلیط سفارش از دست دادن را به صورت دستی به روز کنید ، همانطور که در خط کدی که برجسته کردم انجام دادم: Stoploss. update (UpdateRorderFields جدید< StopPrice = currentPrice * (1m - StopLossPercent) >);

هنگامی که من کدی را که شما در برنامه خود پیشنهاد داده اید قرار دادم ، الگوریتم من به جای خرید در یک صلیب متوسط متحرک ، هر ثانیه ای را که در آن بود خریداری می کرد. اینجا نمونه ای از کد من است. http://imgur. com/yddtrd0

اگر پروژه کامل را ضمیمه کنید، معمولا کمک کردن برای دیگران آسان‌تر است، سپس ما می‌توانیم مستقیماً آن را ویرایش کرده و پروژه ثابت را دوباره پیوست کنیم (باید بک‌آست را نیز پیوست کنید). در پاسخ به سوال شما، من بلافاصله چند مورد را می بینم. اول، من فکر می کنم منطق خرید/فروش شما باید یک بلوک if/else باشد تا هرگز نتوانند در همان مرحله زمانی شلیک کنند. ثانیاً، به نظر می‌رسد که شما سفارش بازار خود را از طریق تابع Order انجام می‌دهید، اما سپس با SetHoldings تماس می‌گیرید که یک سفارش بازار را نیز ارسال می‌کند. به همین ترتیب، در تابع فروش خود Liquidate و سپس SetHoldings (0. 0) را فراخوانی می کنید. تابع SetHoldings سعی می‌کند دارایی‌های فعلی شما را روی درصد هدف‌گذاری شده از ارزش پورتفولیو (1 = 100% TotalPortfolioValue) تنظیم کند. بنابراین اگر شما را نقد کنید (همه چیز را ببندید) و سپس SetHoldings (0. 0) را فراخوانی کنید، هیچ اتفاقی نمی افتد.

نکته دیگر، هنگام ارسال سفارشات توقف ضرر/ برداشت سود (از طریق StopMarketOrder و LimitOrder) باید مقدار را روی منفی تنظیم کنید، زیرا می خواهید آن سفارش ها موقعیت شما را ببندند.

این پروژه ای است که من روی مایکل کار می کنم

در اینجا اصلاحات من برای الگوی شما با StopMarketOrder و LimitOrder است. توضیحاتی در کامنت گذاشتم.

همه را نگه داریدزمان سوال:

در مورد این وضعیت در هنگام بک تست چطور؟

CloseHour 1) من یک سفارش stopLoss هم اکنون انجام دادم: [email protected] CloseHour 2) قیمت به 168 CloseHour کاهش می یابد 3) قیمت به 10 کاهش می یابد.

اکنون به دلیل روشی که سیستم ما کار می‌کند، به نظر می‌رسد که توقف ضرر من اکنون بسیار دیر خوانده می‌شود - من خیلی زود از توقف ضرر خود گذشته‌ام. بنابراین این بدان معنی است که هر نوع تلاشی برای Liquidate سفارشات اگر در OnData انجام شود ممکن است خیلی دیر اتفاق بیفتد.

QuantConnect چگونه با مفهوم کارگزارانی که از StopLosses برای ما مراقبت می کنند، برخورد می کند؟اگر بخواهم ریسک خود را روی 1% تنظیم کنم، اساساً غیرممکن است زیرا این اتفاق می افتد. تا زمانی که تصمیم به استفاده از داده های تیک نداشته باشم، تقلید اینکه چگونه استاپ ضرر واقعاً کار می کند غیرممکن به نظر می رسد.

در بک تست، پر کردن سفارش به وضوح بستگی دارد، فقط به این دلیل که هیچ نقطه داده با وضوح بالاتر بین دو نقطه داده از وضوح انتخاب شده وجود ندارد. این مشکل در حالت زنده با استفاده از حساب معاملاتی کاغذی QuantConnect نیست، زیرا سفارش‌های محدود و توقف با تیک‌هایی که در جریان زنده وارد می‌شوند پر می‌شوند. هنگامی که ما با یک کاغذ واقعی کارگزاری یا حساب واقعی معامله می کنیم، انواع سفارشات QuantConnect به نوع سفارش کارگزاری خبرنگاری تبدیل می شود و قرار می گیرد. پس از آن، پرهای آنها توسط کارگزاری مدیریت می شود و پس از پر شدن، API آنها الگوریتم ما را در QuantConnect اطلاع می دهد.

سلام ایان، اکنون از چه داده وضوح استفاده می کنید؟"قیمت 10 کاهش می یابد"

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

اینکه چه کارگزاری استفاده می‌کنید بر اعتبار کارگزاری تأثیر می‌گذارد

سطوح توقف ضرر - از آنچه من می دانم اغلب آنها تضمین نمی کنند

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

الکس به خوبی توضیح داد، همانطور که من شک داشتم.

من تصور می‌کردم که درخواست یک شبیه‌سازی بروکر بهتر بسیار زیاد است. به عنوان مثال، اگر ما فقط داده‌های ساعتی را تغذیه می‌کنیم، سیستم می‌تواند یک خط مستقیم از داده‌های "تیک" را بین 2 نقطه ساعتی محاسبه و شبیه‌سازی کند. این بسیار شدید است، اما می تواند از این مشکل مراقبت کند - شاید به عنوان نوعی گزینه.

یا فکر می‌کردم فقط باید داده‌های تیک را دانلود کنیم.

Ian Worthington، شما فقط باید داده های با وضوح بالاتر را درخواست کنید و یک قیمت واقعی دریافت خواهید کرد. اگر می‌خواهید یک نقطه داده جعلی بین دو نوار را مسخره کنید، اما پر کردن واقعی نخواهد بود، می‌توانید از مدل‌های پر سفارشی استفاده کنید.

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

لویتیکون چند ماه پیش این گوهر را درست کرد. من فکر می کنم ممکن است به دیگران در این موضوع کمک کند:

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

آیا جارد گسترده ، آیا سندی وجود دارد که به طور خلاصه توضیح می دهد که چگونه می توان از این برنامه به عنوان یک تجارت روبو یا مبادله استفاده کرد که ممکن است شامل جریان داده ها و/یا نمودارهای توالی باشد؟

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

من سعی کردم چیزی مشابه را با کد شما پیاده سازی کنم و آن را با داده های برتر Gainers ترکیب کردم. من سعی کردم دوباره Backtest را اجرا کنم و هرگز به همان نتیجه نرسیدم. من کاملاً جدید هستم اما می خواهم به درستی روی بخش خطر تمرکز کنم. من متوجه شدم که توقف دنباله من هرگز فروش را اجرا نکرده است.

من به پیشنهاد جارد در مورد ضرر متوقف و لغو سفارش در هنگام اجرای یک یا دیگری نگاه می کنم.

با توجه به Jonathan Evans اصلاحات برای Stopmarketorder و Limitorder.

این خط خطایی به من می دهد:

اگر (! orderevent. status. isclosed ()) آیا راهی در این زمینه وجود دارد؟همچنین من از برنامه نویسی عینی استفاده می کنم ، و با وارد کردن این پارامترها در عملکرد Onorderevent مشکلی دارم: سفارش خصوصی Ticket CurrentOrder ؛Private OrderTicket Stoploss ؛PROFITTARGET PROFITCHET PRIVATE ؛واردات pandas numpy را به عنوان np ### وارد کنید

### استراتژی ساده RSI در نظر گرفته شده برای ارائه یک مثال الگوریتم حداقل با استفاده از ### یک شاخص ###کلاس rsialgorithm (qcalgorithm):

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

# تنظیم پارامترهای استراتژی اصلی ما self. setStartDate (2013،1 ، 1) # تنظیم تاریخ شروع خود را تنظیم کنید.

RSI_PERIOD = 14 # RSI به پشت خود نگاه کنید. RSI_OB = 60 # RSI سطح بیش از حد خود. RSI_OS = 40 # RSI OVERSD LEVEL SELF. ALLOCATION = 2 # درصد از Captital برای تخصیص خود.. first_stg_up = 0 self. first_stg_down = 0 self. trend = 0 self. trend_n = 0

self. symbol = "eurusd" self. tp = 20/10000 self. sl = 10/10000 self. Oldings = 0 self. quant = 10000

# نمادهای بیشتری را در اینجا بیابید: http://quantconnect. com/data self. addforex ("Eurusd" ، قطعنامه.

self. rsi_ind = self. rsi ("eurusd" ، rsi_period) self. bb_ind = self. bb ("eurusd" ، 20 ، 1 ، movingaverageType. simple) ؛self. slow = self. sma ("eurusd" ، 20 ، قطعنامه. hour. hour. fast = self. sma ("eurusd" ، 7 ، قطعنامه.

# اطمینان حاصل کنید که شاخص قبل از تجارت داده های کافی دارد ،. self. setwarmup (20)

def ondata (خود ، داده):

اگر Self. porfolio. invested: # اگر اینطور نیست ، ما شاخص RSI را بررسی می کنیم اگر self. trend == 1: # # self. setholdings ("eurusd" ، self. allocate) ترتیب = self. marketorder (self. symbol ، خود. Quant) sl = self. stopmarketorder (self. symbol ، -self. quant ، fxclos e-self. sl) tp = خود.

#if self. rsi_ind. current. value< self.RSI_OS: # Buy Apple # self.SetHoldings("EURUSD", self.Allocate) else: if self.trend_n == -1: # Sell Apple self.Liquidate("EURUSD")

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.