
حالتهای مختلف ساخت استراتژی (Different build modes)
آوریل 3, 2025
آزمونهای خودکار استحکام استراتژی (automated strategy robustness tests)
آوریل 3, 2025سبک SQ3 (قدیمی)
در نسخه قبلی نرمافزار SQ، استراتژیهای تولید شده به این صورت بودند:
LONG ENTRY RULE: IF Long Entry Conditions THEN Open Long order SHORT ENTRY RULE: IF Short Entry Conditions THEN Open Short order LONG EXIT RULE: IF Long Exit Conditions THEN Close Long order SHORT EXIT RULE: IF Short Exit Conditions THEN Close Short order
این قالببندی ساده و منطقی است، اما اگر همزمان شرایط ورود به معامله خرید (Long) و فروش (Short) برقرار باشند چه باید کرد؟ در این حالت، یا باید هر دو معامله را باز کنید، یا یکی از دیگری را کنسل کند.
یا اگر همزمان شرایط ورود به معامله خرید و خروج از آن برقرار باشند چه میشود؟ در این حالت مشخص نیست که باید وارد معامله شد یا از آن خارج شد.
این مشکلات در معماری جدید SQ X پوشش داده شدهاند.
سبک جدید SQ X
در معماری جدید نرمافزار SQ X، اولین قانون یک قانون سیگنال (Signal) خاص است که تمام شرایط معاملاتی را بررسی میکند. سایر قوانین، سیگنالهای تولید شده را بررسی کرده و بر اساس آنها معاملات را باز یا بسته میکنند. ساختار استراتژی به این صورت خواهد بود:
SIGNAL RULE: LongEntrySignal = Long Entry Conditions ShortEntrySignal = Short Entry Conditions LongExitSignal = Long Exit Conditions ShortExitSignal = Short Exit Conditions LONG ENTRY RULE: IF LongEntrySignal = true and ShortEntrySignal = false and LongExitSignal = false THEN Open Long order SHORT ENTRY RULE: IF ShortEntrySignal = true and LongEntrySignal = false and ShortExitSignal = false THEN Open Short order LONG EXIT RULE: IF LongExitSignal = true and LongEntrySignal = false THEN Close Long order SHORT EXIT RULE: IF ShortExitSignal = true and ShortEntrySignal = false THEN Close Short order
در این سبک، ابتدا سیگنالهای خرید و فروش و خروج بررسی میشوند، و سپس تصمیمگیری میشود که آیا معاملهای باید باز یا بسته شود. این روش، تضاد احتمالی بین سیگنالهای مختلف را حذف میکند و اجازه نمیدهد شرایط متناقض باعث اجرای همزمان دستورات متضاد شود.
سبک جدید SQ X با منطق فازی
یک تغییر در سبک جدید قوانین، استفاده از منطق فازی (Fuzzy Logic) است. تنها تفاوت آن با نوع قبلی، در قانون سیگنال (Signal rule) است. معمولاً شرایط در سیگنالها با AND و OR ترکیب میشوند.
مثال سیگنال در یک استراتژی معمول میتواند چیزی شبیه به این باشد:
SIGNAL RULE: LongEntrySignal = ((CCI(14) > 0) and (RSI(20) > 50)) or ((MACD(10, 20, 30) > 0) and Hammer Candle Pattern))
اما با استفاده از منطق فازی، میتوان همه شرایط را ارزیابی کرد و اجازه داد بعضی از آنها غلط باشند، در حالی که سیگنال همچنان معتبر بماند.
SIGNAL FUZZY RULE LongEntrySignal (70% از شرایط زیر باید درست باشند): CCI(14) > 0 RSI(20) > 50 MACD(10, 20, 30) > 0 Hammer Candle Pattern
توجه کنید که اینجا هیچ AND یا OR به کار نرفته است؛ همه شرایط ارزیابی میشوند.
در قوانین فازی، شما تعیین میکنید که چه درصدی از شرایط باید صحیح باشند تا کل سیگنال معتبر تلقی شود.
در مثال بالا، ما چهار شرط داریم و گفتهایم ۷۰٪ آنها باید صحیح باشند؛ یعنی اگر سه مورد از چهار شرط درست باشند، سیگنال LongEntrySignal فعال میشود.
استفاده از قوانین فازی تنها زمانی معنا پیدا میکند که شما اجازه دهید برنامه بیش از ۲ یا ۳ زیرشرط را در هر سیگنال تولید کند. اگر فقط ۲ یا ۳ شرط داشته باشید، منطق فازی خیلی کارآمد نخواهد بود.
اما تصور کنید که سیگنال ورود شما از ۱۰ شرط تشکیل شده است. در این صورت، منطق فازی را میتوان مانند یک رأیگیری در نظر گرفت که اکثریت شرایط درست، نتیجه نهایی سیگنال را تعیین میکنند.
این روش، امکانات جدیدی برای ساخت استراتژیها فراهم میکند.
الگوهای سفارشی استراتژی (Custom strategy templates)
قابلیت سفارشیسازی یکی از بزرگترین نقاط قوت StrategyQuant است. شما محدود به این سه سبک از پیشتعریفشده نیستید. الگوهای سفارشی (Custom templates) به شما این امکان را میدهند که یک «الگو» از معماری استراتژی خود بسازید و سپس استراتژیهایی را مطابق با این الگو تولید کنید.