ما اغلب از ما خواسته می شود از انواع سفارشات دیگر مانند یکی دیگر ، توقف دنباله دار و سفارشات چند پا پشتیبانی کنیم. در حال حاضر ، Lean از این نوع سفارشات پشتیبانی نمی کند ، اما ما آنها را به مرور زمان اضافه خواهیم کرد. بخشی از دشواری اجرای آنها پشتیبانی ناقص کارگزاری است.
یکی سفارشات دیگر را لغو می کند
یکی دیگر از سفارشات (OCO) مجموعه ای از سفارشات است که وقتی فرد پر می شود ، بقیه سفارشات موجود در مجموعه را لغو می کند. مثال این است که درست پس از ورود به یک موقعیت ، یک انتفاعی و یک ترتیب متوقف کردن را تنظیم کنید. در این مثال ، هنگامی که یا سفارش دریافت یا توقف از دست دادن پر می شود ، سفارش دیگر را لغو می کنید. سفارشات OCO معمولاً با قیمت خروجی تجارت ، یک محدوده بالا و پایین ایجاد می کند.
هنگامی که سفارشات OCO را قرار می دهید ، سطح قیمت آنها معمولاً مربوط به قیمت پر کردن تجارت ورودی است. اگر تجارت ورود شما یک سفارش همزمان بازار است ، می توانید بلافاصله قیمت پر از بلیط سفارش را دریافت کنید. اگر تجارت ورود شما بلافاصله اجرا نمی شود ، می توانید قیمت پر کردن را در کنترل کننده رویداد Ondorderevents دریافت کنید. پس از دریافت قیمت پر کردن ورودی ، می توانید سطح قیمت سفارشات OCO را محاسبه کنید.
// دریافت قیمت پر از بلیط سفارش سفارش بازار همگام سازی _ticket = marketorder ("جاسوسی" ، 1) ؛var fillPrice = _ticket. averefillPrice ؛// دریافت قیمت پر از Handler Event Orderevent Public Override void onorderevent (orderevent orderevent)># Get the fill price from the order ticket of a sync market order self.ticket = self.MarketOrder("SPY", 1) fill_price = self.ticket.AverageFillPrice # Get the fill price from the OnOrderEvent event handler def OnOrderEvent(self, orderEvent: OrderEvent) >هیچکدام: اگر orderevent. status == OrderStatus. filt و self. ticket. orderid == orderevent. orderid: fill_price = orderevent. fillpriceپس از داشتن سطح قیمت هدف ، برای اجرای سفارشات OCO ، می توانید سفارشات فعال را قرار دهید یا قیمت امنیتی را برای شبیه سازی سفارشات پیگیری کنید.
سفارشات فعال را قرار دهید
برای قرار دادن سفارشات فعال برای سفارشات OCO ، از ترکیبی از سفارشات محدود و توقف سفارشات استفاده کنید. این سفارشات را طوری قرار دهید که سطح قیمت آنها به اندازه کافی جدا از یکدیگر باشد. اگر سطح قیمت آنها خیلی نزدیک باشد ، چندین سفارش می توانند یک مرحله زمانی را پر کنند. هنگامی که یکی از سفارشات پر می شود ، در کنترل کننده رویداد onorderevent ، سایر سفارشات را در مجموعه سفارش OCO لغو کنید.
OrderTicket _stopLoss = null ؛OrderTicket _takeProfit = null ؛Public Override void onorderevent (Orderevent orderevent)دیگری اگر (_stoploss! = null && orderevent. orderid == _stoploss. orderid)<_takeProfit.Cancel();>دیگری اگر (_takeProfit! = null && orderevent. orderid == _takeprofit. orderid)<_stopLoss.Cancel();>>>
self.stop_loss = None self.take_profit = None def OnOrderEvent(self, orderEvent: OrderEvent) >هیچ کدام: if orderEvent. Status == OrderStatus. Filled: if orderEvent. OrderId == self. ticket. OrderId: self. stop_loss = self. StopMarketOrder(orderEvent. Symbol, -orderEvent. FillQuantity, orderEvent. FillPrice. frofit.*0= self. LimitOrder(orderEvent. Symbol, -orderEvent. FillQuantity, orderEvent. FillPrice*1. 10) elif self. stop_loss None نیست و orderEvent. OrderId == self. stop_loss. OrderId: self. take_profit. self. take. None نیست و orderEvent. OrderId == self. take_profit. OrderId: self. stop_loss. Cancel()
شبیه سازی سفارشات
برای شبیه سازی سفارش های OCO، قیمت دارایی را در روش OnData دنبال کنید و زمانی که قیمت دارایی به سطح سود یا توقف ضرر رسید، سفارش های بازار یا محدود کنید. مزیت شبیه سازی دستی سفارشات OCO این است که هر دو سفارش نمی توانند یک مرحله زمانی را تکمیل کنند.
اعشاری _entryPrice; لغو عمومی void OnData (برش برش)if (!slice.Bars.ContainsKey("SPY")) retu; if (slice.Bars["SPY"].Price>= _entryPrice * 1. 10 میلیون)else if (slice.Bars["SPY"].Price>
def OnData(self, slice: Slice) > None: if not self.Portfolio.Invested: ticket = self.MarketOrder("SPY", 1) self.entry_price = ticket.AverageFillPrice if slice.Bars.ContainsKey("SPY"): if slice.Bars["SPY"].Price>= self. entry_price * 1. 10: self. Liquidate("SPY"، -1، "سود بگیرید") elif slice. Bars["SPY"]. Priceسفارشات توقف ضرر
دستور توقف ضرر پایانی یک توقف ضرر پویا است که با دور شدن دارایی از قیمت توقف به سمت قیمت دارایی حرکت می کند. به عنوان مثال، اگر یک توقف ضرر انتهایی را روی 10% تنظیم کنید، دورترین فاصله ای که تا به حال از قیمت دارایی خواهد داشت، 10% است. اگر این یک دستور توقف ضرر فروش باشد که کمتر از قیمت دارایی باشد و قیمت دارایی به گونه ای افزایش یابد که توقف انتهایی بیش از 10 درصد فاصله داشته باشد، توقف ضرر تا 10 درصد پایین تر از قیمت دارایی افزایش می یابد. اگر قیمت دارایی کاهش یابد، توقف ضرر عقب نشینی حرکت نمی کند.
برای تنظیم یک ترتیب توقف ضرر، به درس خرید و نگه داشتن با یک توقف پایانی Bootcamp مراجعه کنید.
سفارشات چند پا
سفارشات چند پا به سفارشاتی گفته می شود که دارای چندین زیرمجموعه هستند. نمونه هایی از سفارش های چند پا شامل استراتژی های اختیاری مانند اسپرد، استرادل و خفه کردن است. می توانید انواع دیگر سفارشات چند پا را با انواع سفارش داخلی به صورت دستی پیاده سازی کنید.
شما همچنین می توانید ویدیوهای ما را ببینید. همچنین می توانید از طریق دیسکورد با ما در تماس باشید.
آیا این صفحه برایتان سودمند بود؟

مشارکت در اسناد:
مبانی اسکالپینگ...
ما را در سایت مبانی اسکالپینگ دنبال می کنید
برچسب :
نویسنده : سید مهدی گلابی
بازدید : <-PostHit->
تاريخ : دوشنبه
13 شهريور
1402 ساعت: 1:09