निकास और पोज़िशन आकार
रणनीति में स्टॉप और लक्ष्य जोड़ें तथा टिक वाली दूरी जाँचें।
पहली रणनीति केवल उलटी क्रॉसिंग पर बंद होती थी। अब प्रवेश कीमत से नुकसान और लाभ की दूरी भी लेंगे। क्रॉसिंग पर निकास का पुराना नियम बना रहेगा।
निकलने के तीन कारण
यहाँ लॉन्ग तीन घटनाओं से बंद हो सकती है:
- कीमत नुकसान स्टॉप के स्तर पर पहुँचे;
- कीमत लाभ लिमिट के स्तर पर पहुँचे;
- तेज़ औसत धीमे को नीचे पार करे और मार्केट एग्ज़िट ऑर्डर पूरा हो।
स्टॉप और लिमिट कीमत की शर्त वाले ऑर्डर हैं। strategy.close मार्केट एग्ज़िट देता है। भरने के नियम अलग हो सकते हैं, इसलिए टेबल में कीमत और समय दोनों देखें।
दूरी या तय कीमत?
strategy.exit में दो तरह से दे सकते हैं:
| आर्ग्युमेंट | क्या देते हैं? |
|---|---|
loss | नुकसान दूरी टिक में |
profit | लाभ दूरी टिक में |
stop | तय स्टॉप कीमत |
limit | तय लिमिट कीमत |
loss=100, 100 प्रतिशत नहीं और ज़रूरी नहीं कि 100 पैसे की इकाई हो। प्रवेश से सौ टिक की दूरी है।
DEMO का टिक 0.01 है। सौ टिक 1 कीमत इकाई और दो सौ 2 हैं। 200 पर लॉन्ग में स्टॉप 199 और लक्ष्य 202 होगा, स्लिपेज और भरने की अन्य शर्तों के बिना।
पूरा प्रोग्राम
protected_strategy.py बनाएँ:
"""
@pyne edge
"""
from pynecore.lib import close, color, input, plot, script, strategy, ta
@script.strategy(
"Crossing Strategy with Exits",
overlay=True,
initial_capital=10000,
default_qty_type=strategy.fixed,
default_qty_value=1,
pyramiding=1,
commission_type=strategy.commission.percent,
commission_value=0.1,
slippage=2,
)
def main(
fast_length: int = input.int(5, title="Fast length", minval=1, maxval=200),
slow_length: int = input.int(20, title="Slow length", minval=1, maxval=200),
stop_ticks: int = input.int(100, title="Stop distance (ticks)", minval=1),
target_ticks: int = input.int(200, title="Target distance (ticks)", minval=1),
):
fast_average = ta.sma(close, fast_length)
slow_average = ta.sma(close, slow_length)
crosses_up = ta.crossover(fast_average, slow_average)
crosses_down = ta.crossunder(fast_average, slow_average)
if crosses_up:
strategy.entry("Long", strategy.long)
if crosses_down:
strategy.close("Long")
strategy.exit("Bracket", "Long", loss=stop_ticks, profit=target_ticks)
plot(fast_average, "Fast average", color=color.blue, linewidth=2)
plot(slow_average, "Slow average", color=color.orange, linewidth=2)Bracket निकास समूह की पहचान है। दूसरा Long बताता है किस प्रवेश से जुड़ा है। loss और profit ऊपर के दो इनपुट लेते हैं।
हर कैंडल पर उसी पहचान से निकास कॉल करते हैं। यह निकास नियम संभालता है; हर कॉल नई स्वतंत्र पूरी पोज़िशन नहीं खोलती।
डेमो पर चलाएँ। Trades में क्रॉसिंग की मार्केट एग्ज़िट के अलावा Bracket निकास भी आ सकते हैं।

सुरक्षा निकास कब आता है?
एक ही निष्पादन में प्रवेश और जुड़ा निकास निर्देश दे सकते हैं। रनटाइम टिक दूरी को असली भरे प्रवेश मूल्य से जोड़ सकता है।
इसके बजाय संकेत की क्लोज़ से तय stop निकालें तो स्तर उसी कीमत से शुरू होगा। अगली ओपन अलग हो तो असली प्रवेश से दूरी बदल जाएगी।
इसलिए मनचाहे नियम के अनुसार तरीका लें। loss प्रवेश से टिक दूरी, stop तय स्तर है।
कैंडल में हर कीमत कदम नहीं होता
OHLCV से ओपन, हाई, लो और क्लोज़ जानते हैं। भीतर की सभी मध्य कीमतों का समय क्रम अपने आप नहीं जानते।
एक कैंडल का हाई लक्ष्य और लो स्टॉप छुए तो चार कीमतें नहीं बतातीं कि पहले क्या हुआ। सिम्युलेटर भरने के मॉडल का नियम लेता है। छोटे टाइमफ़्रेम का डेटा अधिक बारीक जाँच दे सकता है।
यह अलग जाँचें; हाथ से हर बार अच्छा परिणाम न चुनें। मॉडल की मान्यता नतीजे का हिस्सा है।
स्टॉप कीमत ठीक उसी पर भरने की गारंटी नहीं। अगली कैंडल स्टॉप के पार खुले तो छलाँग के कारण खराब कीमत मिल सकती है। स्लिपेज अतिरिक्त अंतर दे सकता है।
दूरी और पैसे का नुकसान
एक यूनिट लॉन्ग और पॉइंट वैल्यू 1 में, 100 टिक तथा 0.01 टिक आकार का मतलब 1 पैसे की इकाई का अंतर है। दस यूनिट में दस गुना।
मात्रा, टिक और पॉइंट वैल्यू मिलकर स्टॉप तक का पैसे में आकार तय करते हैं। कमीशन और असली भरने की परिस्थिति भी जोड़ें।
ऑर्डर में सीधे qty दें तो उसकी अपनी मात्रा है। उदाहरण डिफ़ॉल्ट लेता है जिसे Properties → Order size में बदल सकते हैं।
DEMO के 100 और 200 टिक समझाने के लिए हैं। दूसरे इंस्ट्रूमेंट में यही अंक अलग कीमत और पैसे की दूरी हो सकते हैं।
स्वयं करके देखें
लंबाई, मात्रा और खर्च समान रखें। एक रन 100/200 और दूसरी 200/400 स्टॉप-लक्ष्य से करें। उसी प्रवेश संकेत का परिणाम देखें।
अभ्यास का हल
Inputs में केवल Stop distance (ticks) और Target distance (ticks) बदलें। बड़ी दूरी से दूसरी कैंडल या कारण पर बंद हो सकती है।
दोनों में क्रॉसिंग पर निकास है। इसलिए बड़ा लक्ष्य यह नहीं कि वहाँ तक खुली रहेगी। निकास नियम साथ काम करते हैं।
इनपुट सेव करने पर गणना पूरी होने दें, फिर नया नतीजा पढ़ें। आगे तुलना के लिए दोनों एक्सपोर्ट अलग नाम से बचाएँ।
निकास का कारण खोजें
बंद ट्रेड में प्रवेश, टिक दूरी और बंद कैंडल का OHLC देखें। कीमत और समय से तय करें कौन-सा नियम कारण है। कई स्तर छुए हों तो भरने का मॉडल भी लें।