استراتژی 65SMA_3CC Chande < Span> استراتژی 65SMA_3CC Chande استراتژی 65SMA_3CC استراتژی Chande

ساخت وبلاگ

این استراتژی یک استراتژی متقاطع متوسط در حال حرکت از کتاب تجزیه و تحلیل فنی Chande است. از میانگین حرکت ساده 65 روزه (65SMA) و شرایط تأیید افزودنی "سه بسته متوالی" (3 سی سی) استفاده می کند. بنابراین نام این استراتژی "65SMA_3CC" نامیده می شود. مانند سایر استراتژی های که قبلاً نشان داده شده بود ، این استراتژی در یک شرایط واحد وارد می شود (میانگین متقاطع حرکت با 3 بسته بالاتر متوالی) ، اما می تواند از سه روش خروج ممکن استفاده کند. این می تواند پس از گذشت تعداد خاصی از میله ها ، از آن خارج شود ، می تواند در یک ایستگاه دنباله دار خارج شود ، یا می تواند در یک متقاطع متوسط متحرک در جهت مخالف خارج شود. میانگین خروج متقاطع متحرک "روند خروج زیر" در کد نامیده می شود. این یک استراتژی پیچیده تر از آنچه قبلاً نشان داده شده است ، زیرا از چندین شاخص فنی جدید برای کنترل ورودی ها و خروج های تجاری استفاده می کند. به طور خاص ، برای جلوگیری از تجارت شلاق ، این استراتژی از دو فیلتر ورودی تجارت بر اساس مقادیر شاخص ADX و RAVI استفاده می کند. ADX مخفف شاخص جهت متوسط است. این یک شاخص فنی است که به تشخیص بازارهای روند کمک می کند ، به طوری که سیستم های زیر روند می توانند از معکوس سریع در حرکت متقاطع متوسط در بازارهای مسطح یا جانبی جلوگیری کنند. با افزایش این شاخص ، بازار گرایش را نشان می دهد. وقتی سقوط کرد ، یک بازار جانبی. به طور معمول ، هنگامی که نشانگر ADX بالاتر از 40 باشد ، و سپس سقوط می کند ، یک بازار جانبی یا تلفیقی در حال ظهور است. برعکس ، وقتی شاخص زیر 20 باشد و سپس افزایش یابد ، یک بازار روند در حال ظهور است. استراتژی 65SMA_3CC از یک فیلتر ADX برای جلوگیری از ورود به معاملات جدید در یک بازار جانبی استفاده می کند. RAVI مخفف شاخص تأیید عملکرد محدوده است. این یک نشانگر فنی است که به تشخیص بازارهای روند نیز کمک می کند ، به همین منظور برای کمک به سیستم های زیر برای جلوگیری از ورود به معاملات Whipsaw در بازارهای جانبی. شاخص RAVI یک سیستم متقاطع متوسط در حال حرکت است-از میانگین سریع 7 روزه و میانگین کند 65 روزه استفاده می کند. مقدار شاخص RAVI به عنوان مقدار مطلق اختلاف درصد بین میانگین 7 تا 65 روز تعریف شده است. هنگامی که یک بازار در حال حرکت به پهلو است ، دو میانگین تمایل به داشتن مقادیر یکسانی دارند ، بنابراین تفاوت آن اندک است. برعکس ، هنگامی که بازار رو به رشد است ، میانگین سریع به سرعت از میانگین آهسته دور می شود و اختلاف بیشتری را ایجاد می کند و مقدار شاخص بزرگتر را ایجاد می کند. به طور کلی ، یک مقدار RAVI زیر 3 درصد نشان دهنده قیمت های جانبی و بالاتر از 3 درصد قیمت های روند است.

47 پارامترهای خواص تعریف شده برای استراتژی 65SMA_3CC شما را قادر می سازد تا از کدام فیلتر بخواهید از آن استفاده کنید (ADX یا RAVI) انتخاب کنید ، و همچنین به شما امکان می دهد انواع مختلفی از طول متوسط حرکت ، محدودیت های از دست دادن را متوقف کنید و سایر مقادیر پارامتر استراتژی را کنترل کنید. چاند می گوید که این استراتژی (نه این اجرای خاص از آن) در 20 سال داده برای 23 بازار مختلف مورد آزمایش قرار گرفته است و در هر یک قوی و سودآور بوده است. بنابراین این باید یک نمونه خوب از یک سیستم روند رایانه ای زیر باشد. سرانجام ، توجه داشته باشید که این استراتژی دارای ویژگی های تنظیم کننده کاربر و روش های کمکی بیشتر از سایر استراتژی های موجود در این سند است. روش های یاور قابلیت خواندن کد را افزایش می دهد زیرا آنها کد ابزار را در قطعات کوچک و قابل کنترل جدا می کنند. در اینجا کد کامل استراتژی آورده شده است.استفاده از سیستم ؛با استفاده از system. drawing ؛با استفاده از OpenQuant. api ؛با استفاده از OpenQuant. Api. Indicators ؛// این Enum مقادیر فیلتر مجاز را تعریف می کند Public Enum FilterType<[Parameter("Order quantity (number of contracts to trade)")] double Qty = 100; [Parameter("Bars Exit Level", "Bars Exit")] bool BarCountExitEnabled; [Parameter("Bars to Exit Count", "Bars Exit")] int BarsToExitCount = 20; [Parameter("Consecutive Closes Count")] int ConsClosesCount = 3; [Parameter("SMA Length")] int SMALength = 65; [Parameter("Stop Exit Level", "Stop Exit")] double TrailingStopLevel = 500; [Parameter("Stop Exit Enabled", "Stop Exit")] bool TrailingStopEnabled; [Parameter("Trend-Following Exit Enabled", "Trend-Following Exit")] bool TrendFollowingExitEnabled; [Parameter("Trend-Following Exit Length", "Trend-Following Exit")] int TrendFollowingExitLength = 14; [Parameter("Filter Type", "Filter")] FilterType FilterType = FilterType.None; [Parameter("ADX Length", "ADX")] int ADXLength = 14; [Parameter("ADX Level", "ADX")] double ADXLevel = 20; [Parameter("Short SMA Length (RAVI)", "RAVI")] int ShortSMALength = 7; [Parameter("RAVI Percent Level", "RAVI")] double RAVILevel = 0.5; // the slow average is 65 bars long by default SMA sma; // only enter new trades if no position exists bool entryEnabled = false; // for consecutive closes int ccCount = 0; // record the crossing state Cross smaCross = Cross.None; // for the bar count exit method int barsFromEntry = 0; // for the trailing stop exit method Stop trailingStop; // Exit when High/Low exceed previous price range bool exitOnBarOpen = false; // RAVI Filter parameters SMA shortSMA; // ADX Filter parameters ADX adx; // shares to buy, and trading orders Order buyOrder; Order sellOrder; public override void OnStrategyStart() کلاس عمومی MyStrategy: استراتژی>// در صورت نیاز ، میانگین حرکت ADX را در صورتی تنظیم کنید (FilterType == filtertype. adx)Public Override Void Onbar (نوار نوار)TrendFollowingExitl طول + 1)prevHigh) exitOnBarOpen = true;>>// بررسی کنید که آیا ما کوتاه هستیم و نزدیکترین امروز بالاتر از // بالاترین بالاترین آخرین "TrendFollowingExitl طول" // در صورت چنین است ، اگر در نوار بعدی باز شوید اگر (موقعیت == pationside. short)// به دنبال بسته های متوالی پس از یک صلیب متقاطع = bars. crosses (SMA ، BAR) باشید.// در صورت وقوع هر صلیب ، تعداد نزدیکیهای متوالی را مجدداً تنظیم کنید ، // را کپی کنید و مقدار متقاطع را کپی کنید تا بتوانیم نسخه خود را از آن تنظیم کنیم // بدون اینکه نشانگر اصلی را پاک کنیم. if (cross! = cross. none)// اگر یک صلیب رخ داده است ، تعداد CC را افزایش می دهد ، زیرا نوار اول به عنوان اولین نزدیک متوالی در صورت (smacross! = cross. none) cccount ++ حساب می شود.// اگر بسته های متوالی به اندازه کافی داشته باشیم ، وقت آن است که اگر (CCCount == Consclosescount) تجارت کنیم// اگر فیلتر راوی می گوید FilterType. RAVI را وارد کنید ، تجارت را وارد کنید:> // if an entry was enabled, open a position on next bar open if (entryEnabled) exitOnBarOpen = false; // and reset our copy of the cross status to none smaCross = Cross.None;> // reset the consecutive close count too ccCount = 0;>>// اگر فیلتر ADX می گوید OK FilterType. adx را فعال کنید ، تجارت را فعال کنید:>Public Override void onbaropen (نوار نوار)= sma.Last) OpenPosition(OrderSide.Buy); // go short if our bar is below the moving average if (Bars.Last.Close // if we have an existing position, reverse it, // because the trend direction has changed. else ReversePosition();>// اگر باید در صورت (ورود به سیستم) وارد تجارت شویم> // else if we have no position open, // reset the bars count to zero for next time else barsFromEntry = 0;>>>// در غیر این صورت اگر ما باید به جای آن از خروجی شمارش نوار استفاده کنیم // از روند زیر خروج دیگر استفاده می کنیمPublic Override Void OnpositionChanged ()void private cancelexit ()void private setexit ()Public Override void onstopexed (توقف توقف)بستر خالی خصوصی ()OpenPosition Void Private (سمت سفارش)Void Reversposition ()>دیگر= RAVILevel) retu true; else retu false;>FilterRavi Bool Private ()= ADXLevel) retu true; else retu false;>>
تجارت با گزینه‌‌های باینری...
ما را در سایت تجارت با گزینه‌‌های باینری دنبال می کنید

برچسب : نویسنده : حمیدرضا پگاه بازدید : 24 تاريخ : يکشنبه 22 مرداد 1402 ساعت: 22:43