
एक स्व-अनुकूली एंटी-डबल वक्र सीधी रेखा सीसीआई गतिशीलता ट्रेडिंग रणनीति एक तकनीकी सूचक-आधारित मात्रात्मक ट्रेडिंग प्रणाली है, जिसका केंद्र Kıvanc Özbilgiç द्वारा विकसित आईएफटीसीसीआई सूचक पर निर्भर करता है। यह रणनीति एक सटीक गिरावट स्तर सेट करके खरीद और बेचने के संकेत उत्पन्न करती है जब सूचक -1 से + 1 के बीच में उतार-चढ़ाव करता है। यह एक खरीद संकेत को ट्रिगर करता है जब सूचक एक कम से नीचे (−0.95) से ऊपर की ओर एक विशिष्ट सीमा को तोड़ता है; यह एक बिक्री संकेत को ट्रिगर करता है जब सूचक उच्च से नीचे (−0.95) से ऊपर की ओर एक विशिष्ट सीमा को तोड़ता है। इसके अलावा, इस रणनीति में एक गतिशील स्टॉप लॉस तंत्र और प्रवेश की स्थिति शामिल होती हैः यदि कीमत एक संकेत के बाद विपरीत दिशा में 0.1 इकाइयों की गतिशीलता से चलती है, तो सिस्टम स्टॉप लॉस को ट्रिगर करता है या फिर से प्रवेश करता है। यह रणनीति एक समुद्री एशिकन (ही) पर दिखाया गया है।
इस रणनीति के केंद्र में IFTCCI सूचकांक है, जिसे निम्नलिखित चरणों के माध्यम से गणना की जाती हैः
इसकी गणना निम्नानुसार की जाती है:
v1 = 0.1 * (CCI(close, period) / 4)
v2 = WMA(v1, wma_period)
IFTCCI = (e^(2*v2) - 1) / (e^(2*v2) + 1)
रणनीति के निष्पादन तर्क को निम्नलिखित प्रमुख भागों में विभाजित किया गया हैः
खरीदने की शर्तें:
विक्रय की शर्तें:
स्थिति ट्रैक करें:
पूरी रणनीति में प्रतिशत धन प्रबंधन का उपयोग किया जाता है, प्रत्येक लेनदेन पर 100% उपलब्ध धन का उपयोग किया जाता है, और बढ़ी हुई स्थिति पर प्रतिबंध लगा दिया जाता है। रणनीति प्रत्येक K लाइन के गठन पर वास्तविक समय में संकेतों की गणना करती है ताकि बाजार की गतिशीलता को समय पर पकड़ना सुनिश्चित किया जा सके।
स्पष्ट प्रवेश और निकास नियम: रणनीति सटीक संख्यात्मक अवमूल्यन पर आधारित स्पष्ट व्यापारिक संकेत प्रदान करती है, जो व्यक्तिपरक निर्णयों से बचती है और व्यापारिक निर्णयों को अधिक निष्पक्ष और अनुशासित बनाती है।
गतिशील जोखिम प्रबंधन तंत्रअंतर्निहित स्टॉप लॉस तंत्र एक एकल लेनदेन के नुकसान को प्रभावी रूप से सीमित कर सकता है, और जब बाजार पूर्वनिर्धारित सीमा से अधिक हो जाता है, तो स्वचालित रूप से बाहर निकल जाता है, जिससे धन की सुरक्षा होती है।
बाजार अनुकूलनशीलआईएफटीसीसीआई सूचकांक में एक प्राकृतिक एकीकरण विशेषता है, जो विभिन्न अस्थिरता वाले बाजार के वातावरण के लिए उपयुक्त है।
सिग्नल को चिकना करें, झूठी दरारें कम करेंभारित मोबाइल औसत का उपयोग करके मूल सीसीआई को चिकना करने के लिए, शोर और झूठे संकेतों को कम करने और ट्रेडिंग सिग्नल की विश्वसनीयता बढ़ाने के लिए प्रभावी रूप से।
स्मार्ट पुनर्प्रवेश: जब बाजार बाहर निकलने के बाद अपने मूल रुझान पर लौटता है, तो फिर से प्रवेश तंत्र सिस्टम को अवसरों को फिर से हासिल करने और रणनीति की लाभप्रदता को बढ़ाने की अनुमति देता है।
अच्छा दृश्यरणनीति: चार्ट पर स्पष्ट पृष्ठभूमि रंग परिवर्तन प्रदर्शित करता है, जिससे व्यापारियों को बाजार की स्थिति और व्यापारिक संकेतों को समझने में मदद मिलती है।
पैरामीटर समायोज्य: सभी महत्वपूर्ण पैरामीटर को इनपुट इंटरफ़ेस के माध्यम से समायोजित किया जा सकता है, जिससे रणनीति को विभिन्न बाजार स्थितियों और व्यक्तिगत जोखिम वरीयताओं के अनुकूल बनाया जा सकता है।
बाज़ारों में लगातार हो रहे लेन-देन: बाइनरी ऑब्जेक्टिव बाजारों में, सूचकांक अक्सर मूल्यह्रास के आसपास उतार-चढ़ाव कर सकते हैं, जिससे कई बार खरीदने और बेचने के संकेत मिलते हैं, जिससे ओवर-ट्रेडिंग और कमीशन की कमी होती है। समाधान: अतिरिक्त फ़िल्टरिंग शर्तें जैसे समय फ़िल्टर या प्रवृत्ति फ़िल्टर को जोड़ा जा सकता है, जिससे अस्थिर बाजारों में ट्रेडिंग की आवृत्ति कम हो जाती है।
स्टॉप लॉस की निश्चितता: वर्तमान रणनीति में स्टॉप लॉस के रूप में एक निश्चित मूल्य ((0.1 इकाइयों) का उपयोग किया जाता है, जो कि अस्थिरता के विभिन्न बाजार वातावरण में बहुत बड़ा या बहुत छोटा हो सकता है। समाधान: एक अनुकूलनशील स्टॉप-अप आयाम डिज़ाइन किया जा सकता है, जो हाल के बाजार की अस्थिरता की गतिशीलता के आधार पर स्टॉप-अप दूरी को समायोजित करता है।
दीर्घकालिक रुझानों की पुष्टि की कमीयह रणनीति मुख्य रूप से अल्पकालिक गतिशीलता पर आधारित है और इसमें दीर्घकालिक रुझान विश्लेषण शामिल नहीं है, जो प्रमुख रुझानों के उलट होने पर अनावश्यक व्यापार का कारण बन सकता है। समाधान: एक फ़िल्टर के रूप में लंबे समय तक चलने वाले रुझान संकेतक को पेश करना, केवल रुझान की दिशा में व्यापार करना।
पुनर्प्रवेश तंत्र के समय पर जोखिम: वर्तमान में, बाजार में फिर से प्रवेश करने की व्यवस्था एक निश्चित रिबाउंड पर आधारित है, जो बाजार के झूठे ब्रेकडाउन के दौरान जल्दी से वापस आ सकती है। समाधान: अतिरिक्त पुष्टिकरण शर्तों को जोड़ना, जैसे कि मात्रा की पुष्टि या अन्य तकनीकी संकेतकों के साथ संरेखित संकेत।
एकल सूचकांक निर्भरतायह रणनीति केवल एक सूचक पर निर्भर करती है और इसमें बहुआयामी बाजार विश्लेषण की कमी है। समाधान: एक पूरक सूचकांक पोर्टफोलियो का परिचय, जैसे कि आरएसआई, एमएसीडी या अस्थिरता सूचकांक, जो कई कोणों से बाजार की पुष्टि प्रदान करता है।
बहु-समय-सीमा विश्लेषण एकीकरण: वर्तमान रणनीति केवल एक एकल समय सीमा पर चलती है, बहु-समय सीमा विश्लेषण को एकीकृत किया जा सकता है, उदाहरण के लिए, IFTCCI सूचकांक का उपयोग करना जो उच्च समय सीमा के लिए ट्रेडिंग दिशा फिल्टर के रूप में है, केवल ट्रेडिंग की दिशा में अधिक व्यापक प्रवृत्ति है। इस प्रकार, प्रतिगामी ट्रेडिंग को कम करने और जीत की दर को बढ़ाने के लिए।
गतिशील थ्रेसहोल्ड समायोजन: स्थिर थ्रेशोल्ड ((-0.95⁄0.95) को बाजार की अस्थिरता की गतिशीलता के आधार पर समायोजित थ्रेशोल्ड में बदल दिया गया। कम अस्थिरता वाले वातावरण में एक संकीर्ण थ्रेशोल्ड का उपयोग करें, और उच्च अस्थिरता वाले वातावरण में एक व्यापक थ्रेशोल्ड का उपयोग करें, विभिन्न बाजार स्थितियों में सिग्नल उत्पादन की आवश्यकताओं के अनुकूल।
परिमाण पुष्टि तंत्र: लेन-देन की मात्रा विश्लेषण घटक जोड़े, संकेत उत्पन्न होने पर महत्वपूर्ण लेन-देन की मात्रा के साथ समर्थन की आवश्यकता होती है, कम गुणवत्ता वाले ब्रेकआउट सिग्नल को फ़िल्टर कर सकता है, झूठे ब्रेकआउट से होने वाले नुकसान को कम कर सकता है।
धन प्रबंधन में सुधार: स्थिति प्रबंधन के लिए एक निश्चित प्रतिशत का उपयोग करने वाली वर्तमान रणनीति को बाजार की अस्थिरता और जीत की दर के आधार पर एक अनुकूली धन प्रबंधन प्रणाली में सुधार किया जा सकता है, जो उच्च विश्वास संकेतों पर स्थिति को बढ़ाता है, और कम विश्वास संकेतों पर स्थिति को कम करता है।
मशीन लर्निंग: मशीन लर्निंग एल्गोरिदम का उपयोग करके IFTCCI सूचक के पैरामीटर (CCI चक्र और WMA चक्र) के लिए अनुकूलन अनुकूलन, विभिन्न बाजार स्थितियों के अनुसार सर्वोत्तम पैरामीटर संयोजन को स्वचालित रूप से समायोजित करना, रणनीति की अनुकूलनशीलता में सुधार करना।
समय फ़िल्टर करें: ट्रेडिंग समय फ़िल्टर में शामिल करें, बाजार के उद्घाटन और समापन से पहले उच्च उतार-चढ़ाव के समय से बचें, या महत्वपूर्ण आर्थिक आंकड़ों के प्रकाशन के समय से बचें, और आकस्मिक घटनाओं के कारण अप्रत्याशित उतार-चढ़ाव को कम करें।
सहसंबंध विश्लेषण: अन्य बाजारों या परिसंपत्तियों के साथ सहसंबंध विश्लेषण को शामिल करना, ट्रेडिंग संकेतों की विश्वसनीयता को बढ़ाता है और रणनीति की स्थिरता को बढ़ाता है जब कई संबंधित बाजारों में समान संकेत होते हैं।
अनुकूलन विरोधी दोहरी वक्र सीसीआई गतिशीलता ट्रेडिंग रणनीति एक अच्छी तरह से संरचित, स्पष्ट तर्क के साथ एक मात्रात्मक ट्रेडिंग प्रणाली है, जो IFTCCI सूचकांक की कमी को तोड़कर ट्रेडिंग सिग्नल उत्पन्न करती है, और जोखिम प्रबंधन और अवसरों को पकड़ने के लिए स्टॉप-लॉस और पुनः प्रवेश तंत्र के साथ सुसज्जित है। इस रणनीति का मुख्य लाभ संकेत स्पष्टता, जोखिम नियंत्रण गतिशीलता और पैरामीटर समायोज्यता में है।
हालांकि, इस रणनीति को कई जोखिमों का भी सामना करना पड़ता है, जैसे कि अस्थिर बाजार में अक्सर व्यापार करना, अस्थिर स्टॉप लॉस और दीर्घकालिक रुझान की पुष्टि की कमी। रणनीति की स्थिरता और लाभप्रदता में काफी सुधार किया जा सकता है, जिसमें बहु-समय फ्रेम विश्लेषण, गतिशील समायोजन थ्रेशोल्ड शामिल हैं, लेनदेन की पुष्टि, धन प्रबंधन का अनुकूलन, मशीन सीखने के संवर्धन की शुरूआत और ट्रेडिंग समय फ़िल्टरिंग शामिल हैं।
इस रणनीति को लागू करने के इच्छुक व्यापारियों के लिए, यह अनुशंसा की जाती है कि वे पहले अपने ट्रेडिंग प्रकार और जोखिम वरीयताओं के लिए सबसे अच्छी सेटिंग खोजने के लिए सिमुलेशन वातावरण में विभिन्न पैरामीटर के संयोजन का परीक्षण करें, और धीरे-धीरे एक अधिक व्यापक और मजबूत ट्रेडिंग सिस्टम के निर्माण के लिए इस लेख में प्रस्तुत अनुकूलन दिशाओं को एकीकृत करें।
/*backtest
start: 2024-05-27 00:00:00
end: 2025-01-20 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © erkankuskonmaz
//@version=5
strategy("IFTCCI Buy Sell Signal Strategy",
overlay=false,
pyramiding=0,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100,
calc_on_every_tick=true) // NEW LINE: Enables real-time signal generation.
// --- Indicator Settings and Calculations (IFTCCIv2) ---
group_indicator_params = "Indicator Parameters (IFTCCIv2)"
ccilength_param = input.int(5, "CCI Period", group=group_indicator_params)
wmalength_param = input.int(9, title="Smoothing Period (WMA)", group=group_indicator_params)
// IFTCCIv2 Calculation
v1_calc = 0.1 * (ta.cci(close, ccilength_param) / 4)
v2_calc = ta.wma(v1_calc, wmalength_param)
indicator_value_ift = (math.exp(2 * v2_calc) - 1) / (math.exp(2 * v2_calc) + 1)
// --- Strategy Rule Inputs ---
group_entry_rules = "Buy Signal Conditions"
entry_low_prev_max = input.float(-0.95, title="Primary Buy: Previous Bar Max Value", group=group_entry_rules)
entry_low_curr_min = input.float(-0.94, title="Primary Buy: Current Bar Min Value", group=group_entry_rules)
reentry_trigger_units = input.float(0.10, title="Re-entry: Rise from Lowest Value", group=group_entry_rules)
group_exit_rules = "Sell Signal Conditions (Exit Position)"
exit_high_prev_min = input.float(0.95, title="Target Sell: Previous Bar Min Value", group=group_exit_rules)
exit_high_curr_max = input.float(0.94, title="Target Sell: Current Bar Max Value", group=group_exit_rules)
stop_loss_units = input.float(0.10, title="Stop Loss: Drop from Peak Value", group=group_exit_rules)
// --- Indicator Values for Strategy ---
float ind_val = indicator_value_ift
float ind_val_prev = indicator_value_ift[1]
// --- State Tracking Variables ---
var float highest_indicator_since_long_entry = na
var bool track_for_reentry_after_close = false
var float lowest_indicator_since_reentry_tracking_started = na
// --- Update State Logic ---
// 1. Update the highest indicator value since entering long position
if strategy.position_size > 0
if strategy.position_size[1] <= 0
highest_indicator_since_long_entry := ind_val
else
highest_indicator_since_long_entry := math.max(highest_indicator_since_long_entry, ind_val)
else
if strategy.position_size[1] > 0
highest_indicator_since_long_entry := na
// 2. Update re-entry tracking mechanism
if strategy.position_size[1] > 0 and strategy.position_size == 0
track_for_reentry_after_close := true
lowest_indicator_since_reentry_tracking_started := ind_val
else if strategy.position_size > 0
track_for_reentry_after_close := false
lowest_indicator_since_reentry_tracking_started := na
else if track_for_reentry_after_close and strategy.position_size == 0
if not na(lowest_indicator_since_reentry_tracking_started)
lowest_indicator_since_reentry_tracking_started := math.min(lowest_indicator_since_reentry_tracking_started, ind_val)
else
lowest_indicator_since_reentry_tracking_started := ind_val
// --- Buy Conditions (Long Entry) ---
bool can_enter_new_position = strategy.opentrades == 0
// Condition 1: Main Buy Condition
bool condition_main_buy_cross = ind_val_prev <= entry_low_prev_max and ind_val >= entry_low_curr_min
bool main_long_entry_trigger = condition_main_buy_cross and can_enter_new_position
// Condition 2: Re-entry Buy Condition
bool condition_re_entry_trigger = false
if track_for_reentry_after_close and not na(lowest_indicator_since_reentry_tracking_started) and can_enter_new_position
if ind_val >= lowest_indicator_since_reentry_tracking_started + reentry_trigger_units
condition_re_entry_trigger := true
// Combined Buy Condition
bool final_long_entry_condition = main_long_entry_trigger or condition_re_entry_trigger
// --- Sell Conditions (Long Exit) ---
bool currently_in_long_position = strategy.position_size > 0
// Sell Condition 1: Target Sell
bool condition_sell_target = ind_val_prev >= exit_high_prev_min and ind_val <= exit_high_curr_max
// Sell Condition 2: Stop Loss
bool condition_sell_stop_loss = false
if currently_in_long_position and not na(highest_indicator_since_long_entry)
if ind_val <= highest_indicator_since_long_entry - stop_loss_units
condition_sell_stop_loss := true
// Combined Sell Condition
bool final_long_exit_condition = currently_in_long_position and (condition_sell_target or condition_sell_stop_loss)
// --- Strategy Orders ---
if (final_long_entry_condition)
entry_comment = main_long_entry_trigger ? "Buy (Primary)" : "Buy (Re-entry)"
strategy.entry("Buy ID", strategy.long, comment=entry_comment)
if (final_long_exit_condition)
exit_comment = condition_sell_target ? "Sell (Target)" : "Sell (Stop)"
strategy.close("Buy ID", comment=exit_comment)
// --- Plot Indicator and Strategy Markers ---
plot(indicator_value_ift, title="IFTCCI Value", color=color.rgb(0, 0, 0), linewidth=2)
hline(0, "Mid Level", color=color.new(#787b86, 50), linestyle=hline.style_dotted)
hline(0.95, "Upper Reference (+0.95)", color=color.new(#002fff, 10), linestyle=hline.style_dashed)
hline(-0.95, "Lower Reference (-0.95)", color=color.new(#002fff, 10), linestyle=hline.style_dashed)
// Background Coloring on Entry and Exit Signals
color background_color = final_long_entry_condition ? color.new(color.green, 81) : final_long_exit_condition ? color.new(color.red, 81) : na
bgcolor(background_color, title="Signal Background")