
ایک سادہ ہولڈنگ حکمت عملی ایک ایسی حکمت عملی ہے جس میں کریپٹو کرنسیوں کی باقاعدگی سے خریداری کی جاتی ہے تاکہ کریپٹو کرنسیوں کی بار بار خریداری اور ان کے انعقاد کے ذریعہ اثاثوں کی قدر میں اضافہ کیا جاسکے۔ اس حکمت عملی میں بنیادی طور پر باقاعدگی سے خریداری کے اشارے ، انعقاد کے اشارے اور باہر نکلنے کے اشارے کے تین اہم اجزاء شامل ہیں۔
اس حکمت عملی کی بنیادی منطق یہ ہے:
شروع ہونے پر ، خریداری کا اشارہ بھیجیں اور پہلی خریداری کریں۔
کوٹہ کرنسی میں بیس کرنسی خریدنے کے لئے خریدنے کا اشارہ بھیجیں
جب ٹن کی گنتی پہلے سے طے شدہ قیمت تک پہنچ جاتی ہے تو ، واپسی کی ہدایات بھیجی جاتی ہیں ، اور پوزیشن کو صاف کردیا جاتا ہے۔
جب باہر نکلنے کا وقت آتا ہے تو ، باہر نکلنے کا اشارہ بھیجیں ، حکمت عملی کو روکیں ، تمام پوزیشنوں کو صاف کریں۔
بار بار خریدنے اور کریپٹو کرنسیوں کے انعقاد کے ذریعے ، لاگت کی اوسط اور مستقل اضافے کا اثر حاصل کیا جاسکتا ہے۔
یہ حکمت عملی مندرجہ ذیل فوائد رکھتی ہے:
کریپٹو کرنسیوں کو باقاعدگی سے خریدنے کے لئے ، خریداری کے وقت کا خطرہ کم کریں۔
بار بار خریدنے سے کرپٹو کرنسیوں کی اوسط قیمت کم ہوسکتی ہے۔
پوزیشنوں میں مسلسل اضافے سے پورٹ فولیو میں اضافے کا فائدہ حاصل کیا جاسکتا ہے۔
خریداری اور باہر نکلنے کے وقت کو اپنی مرضی کے مطابق کرنے کے لئے، خود کار طریقے سے کام کرنے کے لئے.
آپریٹنگ آسان اور استعمال کرنے میں آسان ہے.
اس حکمت عملی میں مندرجہ ذیل خطرات بھی ہیں:
کرپٹو کرنسی مارکیٹ میں سسٹم کا خطرہ ، قیمتوں میں بڑے پیمانے پر اتار چڑھاؤ کا امکان۔
غلط وقت پر باہر نکلنے کی وجہ سے نقصانات کا وقت پر خاتمہ نہیں ہوسکتا ہے۔
غلط انتظام کے نتیجے میں ناقابل برداشت نقصانات کا سامنا کرنا پڑتا ہے۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
مارکیٹ کے حالات کے مطابق ، خریداری کے وقت کے وقفے اور رقم کو متحرک طور پر ایڈجسٹ کریں۔
اسٹاپ سگنل شامل کریں اور جب قیمت سپورٹ سے نیچے آجائے تو اس کی پوزیشن بند کردیں۔
مارکیٹ کے حالات کا اندازہ لگانے کے لئے مزید عوامل کے ساتھ ، مارکیٹ میں داخل ہونے اور باہر نکلنے کا بہترین وقت منتخب کریں۔
اس سادہ ہولڈنگ حکمت عملی نے باقاعدگی سے خریدنے اور رکھنے کے طریقوں کے ذریعہ لاگت کی اوسط اور پورٹ فولیو ویلیو میں اضافے کا اثر حاصل کیا۔ استعمال کرنے کے طریقوں پر قابو پانے کی شرط پر ، یہ ایک نسبتا simple آسان مقدار کی حکمت عملی ہے۔ مزید اصلاحات متعارف کرانے سے ، اس حکمت عملی کو زیادہ ذہین اور مارکیٹ کے ماحول میں تبدیلی کے مطابق ڈھال لیا جاسکتا ہے۔
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Merdoc390
//@version=5
// The idea with this script is to use 3commas DCA bot to keep buying crypto, but not 'close the deal' which sells the crypto.
// Basic idea is to keep adding funds, which increases the buy.
// When you cancel the sale, you keep the crypto, thus HODL.
// I use this to build my positions that I short sale on Coinbase.com, so I need to cancel the deal after several candles so I can
// trade them.
// 3commas HODL DCA Bot article:
// https://3commas.io/blog/3commas-hodl-dca-bot-strategy
// This article includes the bot setup on 3Commas:
// Basicially you start the trade, then add funds to the trade, buying more crypto, then eventually cancel the deal.
// When you create the bot, you set the take profit really high, like 999%. Since it is unlikey to hit the value, it will never sell
// Credit to Irakli Gun as inspriation
// https://3commas.io/blog/3commas-hodl-dca-bot-strategy
strategy(title='HODL Simple v1', shorttitle="HODL'er",
calc_on_every_tick=false, calc_on_order_fills=true, process_orders_on_close =true,
format=format.price, precision=4, overlay=true, pyramiding=365,
currency=currency.USD, default_qty_value=10, default_qty_type=strategy.cash , initial_capital=3650,
commission_type=strategy.commission.percent, commission_value=0.1)
var startFirstDeal = true
var done = false
var dealCount = 0
var totalDealCount = 0
i_closeCount = input.int(defval=7,title="Close at Candle Count:",tooltip="How many buy candles to convert to a buy, otherwise it will remain open until end of timeframe.",group="Trade Range")
Start_date = input(defval=timestamp('2023-09-21 16:30'),title="Start Date/Time",group="Trade Range")
Finish_date = input(defval=timestamp('2023-09-21 23:05'),title="End Date/Time",group="Trade Range")
i_startBotAndDealMessage = input(defval="paste your message here",title="Message to start bot and deal", tooltip="Message for 'start bot and deal", group="3Commas",display=display.all)
i_addFundsMessage = input(defval="paste your message here",title="Message for deal add funds signal in the quote currency", tooltip="Using the quote (such as USD), to purchase more.",group="3Commas",display=display.all)
i_cancelTheDealMessage = input(defval="paste your message here",title="Message to cancel the deal",tooltip="If you paste only cancel the deal, the bot will wait until next candle to add funds.\nOption is to also paste the add funds message to also add a buy position.", group="3Commas",display=display.all)
i_cancelAndStopMessage = input(defval="paste your message here",title="Message to cancel all bot deals and stop the bot",tooltip="Paste 3c bot messagage for Cancel all and Stop Bot", group="3Commas",display=display.all)
time_cond = true
// check exit first
if not startFirstDeal and not done and dealCount < i_closeCount
strategy.close("Long")
alert(i_cancelAndStopMessage)
// log.info("Time expired, stopping bot, Total Deal Count:{0}",totalDealCount)
done := true
// check if add funds after first deal
else if time_cond and not startFirstDeal and dealCount < i_closeCount
strategy.entry("Long", strategy.long)
alert(i_addFundsMessage)
// log.info("Deal Count:{0}, totalDeals:{1}",dealCount,totalDealCount)
dealCount := dealCount + 1
totalDealCount := totalDealCount + 1
else if time_cond and startFirstDeal and dealCount <= i_closeCount
strategy.entry("Long", strategy.long)
// log.info("Start deal message, startFirst")
alert(i_startBotAndDealMessage)
startFirstDeal := false
else if time_cond and dealCount >= i_closeCount
strategy.close("Long")
alert(i_cancelTheDealMessage)
// log.info("Over Trades limit of {1}, resetting. Canceling. DealCount: {0}", dealCount, i_closeCount)
dealCount := 0
startFirstDeal := true
else if time_cond
log.error("case not covered")