بے ترتیب چلنے کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-09 16:10:24
ٹیگز:

جائزہ

رینڈم واک حکمت عملی ایک خودکار تجارتی حکمت عملی ہے جو بے ترتیب تعداد کی تخلیق پر مبنی ہے۔ یہ ایک لکیری کنگریوینشل جنریٹر کا استعمال سیٹ سیڈ کی بنیاد پر بے ترتیب تعداد پیدا کرنے کے لئے کرتا ہے۔ جب تعداد ایک حد سے زیادہ ہوتی ہے تو یہ لمبی جاتی ہے ، جب کم ہوتی ہے تو یہ مختصر ہوجاتی ہے ، بے ترتیب اندراج لمبی / مختصر کو نافذ کرتی ہے۔

حکمت عملی منطق

بے ترتیب تجارت کو نافذ کرنے والے اہم حصے یہ ہیں:

  1. ترتیب دیں پیرامیٹرز a، c اور ماڈیول m بے ترتیب تعداد کی نسل کے لئے، اس کے ساتھ ساتھ ابتدائی بیج.

  2. 0-m کے درمیان بے ترتیب نمبر پیدا کرنے کے لئے لکیری کنگرینشل الگورتھم کا استعمال کرتے ہوئے بے ترتیب نمبر جنریشن فنکشن GetRandom کی وضاحت کریں۔

  3. ہر موم بتی پر، اگر کوئی پوزیشن نہیں ہے تو، پیدا ہونے والے بے ترتیب تعداد کے سائز کا موازنہ کریں، جب ایم / 2 سے زیادہ ہو تو طویل ہو، دوسری صورت میں مختصر ہو.

  4. سٹاپ نقصان مقرر کریں اور فیصد میں منافع کی شرائط لیں.

  5. وقت کے فریم کی طرف سے backtest مدت مقرر کریں.

مندرجہ بالا اقدامات کے ذریعے ، حکمت عملی مکمل طور پر بے ترتیب لمبی / مختصر کارروائیوں کا احساس کرتی ہے۔ جب بے ترتیب تعداد m/2 سے زیادہ ہے تو یہ لمبی پوزیشن کھولتی ہے ، بصورت دیگر یہ مختصر کھلتی ہے ، پھر اسٹاپ نقصان اور منافع کو باہر نکلنے کی پوزیشنوں کے ل set سیٹ کرتی ہے۔ بیک ٹیسٹ کی مدت مرضی کے مطابق ہے۔

فوائد کا تجزیہ

  • سادہ اور واضح حکمت عملی منطق، سمجھنے اور لاگو کرنے کے لئے آسان.

  • بے ترتیب تجارت مؤثر طریقے سے جذباتی اثرات سے بچتی ہے اور ذہنی غلط کارروائیوں کو کم کرتی ہے۔

  • بے ترتیب کو ایڈجسٹ کرنے کے لئے اپنی مرضی کے مطابق بے ترتیب نمبر جنریشن پیرامیٹرز.

  • لچکدار سٹاپ نقصان اور منافع لینے کی ترتیبات ایک منافع / نقصان کو کنٹرول کرنے کے لئے.

  • مجموعی منافع پر مختلف پیرامیٹرز کے اثرات کی بیک ٹیسٹنگ کے ذریعے پیرامیٹرز کی اصلاح کی حمایت کرتا ہے۔

خطرے کا تجزیہ

  • بے ترتیب تجارت کے نتیجے میں غیر متعین طویل مدتی رجحان اور غیر یقینی منافع ہوسکتا ہے۔

  • مارکیٹ کے حالات کی بنیاد پر پوزیشنوں کو ایڈجسٹ کرنے میں ناکام، رجحان کے مواقع کو کھو سکتے ہیں.

  • محدود واحد منافع، اعلی کھینچنے کا خطرہ.

  • اہم نقصانات سے بچنے کے لئے معقول سٹاپ نقصان / منافع حاصل کرنے کا تناسب درکار ہے۔

  • بے ترتیب ہونے کی وجہ سے اکثر کھلی / بند پوزیشنوں سے تجارتی اخراجات میں اضافہ ہوتا ہے۔

  • مناسب پیرامیٹرز کی ترتیبات کی تصدیق کے لئے کافی بیک ٹسٹنگ کی ضرورت ہے۔ اندھا پن سے استعمال نہ کریں۔

خطرات کو ٹرینڈ ججمنٹ کا اضافہ، سٹاپ نقصان کے طریقہ کار کو بہتر بنانا، واحد منافع / نقصان وغیرہ کو سختی سے کنٹرول کرنا وغیرہ سے کم کیا جاسکتا ہے۔

بہتری کی ہدایات

  • رجحان کے خلاف تجارت سے بچنے کے لئے رجحان کا فیصلہ شامل کریں.

  • سرمایہ کی تبدیلی کی بنیاد پر پوزیشن سائزنگ شامل کریں.

  • بہتر بے ترتیب کے لئے بے ترتیب نمبر جنریشن الگورتھم کو بہتر بنائیں.

  • متحرک سٹاپ نقصان / منافع حاصل کرنے کا فیصد۔

  • آرڈر کی تعدد کو محدود کریں.

  • کثیر پیرامیٹر بیک ٹیسٹ کی اصلاح.

خلاصہ

بے ترتیب واک حکمت عملی بے ترتیب نمبر کنٹرول شدہ لانگ / شارٹ کے ذریعے مکینیکل ٹریڈنگ کا احساس کرتی ہے۔ اس میں مضبوط بے ترتیب ہے اور جذباتی اثرات اور ذہنی غلط کارروائیوں سے بچتا ہے۔ لیکن بے ترتیب اندراجات رجحان کے مواقع ، محدود واحد منافع ، بہتر خطرہ کنٹرول میکانزم کی ضرورت کو بھی کھو سکتے ہیں۔ مجموعی طور پر یہ حکمت عملی تجارتی خیالات کی تصدیق ، پیرامیٹر اثرات کا اندازہ لگانے کے لئے موزوں ہے ، لیکن عملی استعمال کے لئے محتاط تشخیص کی ضرورت ہے۔


/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//@author=Tr0sT
strategy(title = "Random strategy", shorttitle = "Random", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

a = 16
c = 10
m = 1000
GetRandom(prev) =>
    GetRandom = (a * prev + c) % m

seed = input(200, minval = 2, maxval = m)
stopLoss = input(30, title = "Stop loss percentage(0.1%)")
takeProfit = input(30, title = "Take profit percentage(0.1%)")


curRandom = na
curRandom := nz(curRandom[1]) == 0 ? seed : GetRandom(curRandom[1])
if (strategy.position_size == 0)
    if (curRandom >= m / 2)
        strategy.entry("Enter", strategy.long)
    else
        strategy.entry("Enter", strategy.short)
        
    strategy.exit("Exit", "Enter", loss = close * stopLoss / 1000 / syminfo.mintick, profit = close * takeProfit / 1000 / syminfo.mintick)            

// === Backtesting Dates ===
testPeriodSwitch = input(false, "Custom Backtesting Dates")
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(3, "Backtest Start Month")
testStartDay = input(6, "Backtest Start Day")
testStartHour = input(08, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(14, "Backtest Stop Day")
testStopHour = input(14, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
isPeriod = testPeriodSwitch == true ? testPeriod() : true
// === /END
if not isPeriod
    strategy.cancel_all()
    strategy.close_all()

مزید