بے ترتیب واک کی حکمت عملی


تخلیق کی تاریخ: 2023-10-09 16:10:24 آخر میں ترمیم کریں: 2023-10-09 16:10:24
کاپی: 0 کلکس کی تعداد: 707
1
پر توجہ دیں
1617
پیروکار

جائزہ

بے ترتیب گھومنے والی حکمت عملی ایک خودکار تجارتی حکمت عملی ہے جو بے ترتیب تعداد میں پیدا ہونے پر مبنی ہے۔ اس حکمت عملی میں لکیری مساوات جنریٹر کا استعمال کیا جاتا ہے تاکہ سیٹ کے مطابق بیجوں کو بے ترتیب طور پر پیدا کیا جاسکے۔

حکمت عملی کا اصول

اس حکمت عملی میں بنیادی طور پر مندرجہ ذیل حصوں کے ذریعے بے ترتیب تجارت کی جاتی ہے:

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

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

  3. ہر K لائن پر ، اگر اس وقت کوئی پوزیشن نہیں ہے تو ، اس سے پیدا ہونے والی بے ترتیب تعداد کی نسبت ، m / 2 سے زیادہ وقت میں زیادہ کریں ، ورنہ خالی کریں۔

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

  5. ٹائم فریم کے ذریعے ریٹرننگ سائیکل سیٹ کریں۔

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

طاقت کا تجزیہ

  • حکمت عملی کی منطق سادہ اور واضح ہے اور اس پر عملدرآمد کو سمجھنے میں آسان ہے۔

  • بے ترتیب ٹریڈنگ جذباتی اثر و رسوخ سے بچنے اور ذہنی غلطیوں کو کم کرنے کے لئے مؤثر ہے.

  • اپنی مرضی کے مطابق رینڈم نمبر جنریشن الگورتھم پیرامیٹرز ، بے ترتیب کو ایڈجسٹ کریں۔

  • لچکدار سٹاپ نقصان روکنے کے حالات، کنٹرول واحد نقصان.

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

خطرے کا تجزیہ

  • بے ترتیب تجارت طویل عرصے تک غیر واضح ہوسکتی ہے، آمدنی غیر یقینی ہے.

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

  • یہ ایک چھوٹا سا منافع ہے، اور واپسی کا خطرہ بہت زیادہ ہے.

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

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

  • توثیق کے پیرامیٹرز کی ترتیب کی معقولیت کو مکمل طور پر جانچنے کی ضرورت ہے ، اندھے استعمال نہیں کیا جاسکتا۔

رجحان کا تعین کرنے ، بے ترتیب پوزیشن کھولنے کی تعداد کو کم کرنے ، نقصان کو روکنے کے طریقہ کار کو بہتر بنانے ، اور انفرادی نقصانات کو سختی سے کنٹرول کرنے جیسے افعال کو شامل کرکے خطرے کو کم کیا جاسکتا ہے۔

اصلاح کی سمت

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

  • پوزیشن مینجمنٹ میں شمولیت اختیار کریں اور فنڈز کی تبدیلیوں کے مطابق پوزیشن کا سائز ایڈجسٹ کریں۔

  • بے ترتیب تعداد کی تخلیق کے الگورتھم کو بہتر بنانا ، بے ترتیب کو بہتر بنانا۔

  • متحرک ایڈجسٹمنٹ سٹاپ نقصان سٹاپ اضافہ

  • پوزیشن کھولنے کی فریکوئنسی پر پابندی۔

  • کثیر پیرامیٹرز کے مجموعے کی جانچ پڑتال بہترین پیرامیٹرز کو تلاش کرنے کے لئے.

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*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()