
اس حکمت عملی کا بنیادی خیال یہ ہے کہ تصادفی واقعات جیسے کہ سکے اورینجوں کا استعمال کرتے ہوئے ، واقعات کے نتائج کے مطابق کثیر سر یا خالی سر کا فیصلہ کیا جائے ، تاکہ تصادفی تجارت کو ممکن بنایا جاسکے۔ اس طرح کی تجارتی حکمت عملی کو تخروپن ٹیسٹ کے لئے استعمال کیا جاسکتا ہے ، یا اس سے بھی زیادہ پیچیدہ حکمت عملی کی ترقی کے لئے بنیادی فریم ورک کے طور پر استعمال کیا جاسکتا ہے۔
پاسflipمتغیر ماڈلنگ رینڈم ایونٹ، کے مطابقcoinLabelاس کے بعد، آپ کو اس کے بارے میں مزید معلومات حاصل کرنے کی ضرورت ہے.
استعمالriskاورratioسٹاپ نقصان روک تھام کی لائن مقرر کریں.
ترتیب کے مطابق زیادہ سے زیادہ سائیکلوں کی تعداد میں تصادفی طور پر اگلی ٹریڈنگ سگنل کو متحرک کریں۔
پاسplotBoxمتغیر کے کنٹرول میں ہے کہ آیا خالی خانہ دکھایا جائے یا نہیں۔
stoppedOutاورtakeProfitمتغیر کا استعمال نقصان یا روک تھام کا پتہ لگانے کے لئے کیا جاتا ہے۔
کارکردگی کی جانچ کی حکمت عملی کی فراہمی کے لئے فیڈ بیک فنکشن۔
کوڈ کا ڈھانچہ واضح ہے، اسے سمجھنے اور دوبارہ استعمال کرنے میں آسانی ہے۔
UI انٹرایکٹو دوستانہ ہے، مختلف پیرامیٹرز گرافک انٹرفیس کے ذریعے ایڈجسٹ کیا جا سکتا ہے.
اس میں بے ترتیب ، مارکیٹ کے اتار چڑھاو سے محفوظ ، اور قابل اعتماد ہے۔
پیرامیٹرز کی اصلاح کے ذریعے بہتر آمدنی کی واپسی کی شرح حاصل کی جاسکتی ہے۔
دیگر حکمت عملیوں کے لئے ڈیمو یا ٹیسٹ کے طور پر استعمال کیا جا سکتا ہے.
بے ترتیب تجارت مارکیٹ کا فیصلہ نہیں کر سکتی ہے اور اس میں کچھ منافع کا خطرہ ہے۔
بہترین پیرامیٹرز کا مجموعہ طے نہیں کیا جاسکتا ، بار بار جانچ کی ضرورت ہے۔
اس کے نتیجے میں، اس کے نتیجے میں، اس کے نتیجے میں، اس کے نتیجے میں، اس کے نتیجے میں، اس کے نتیجے میں، اس کے نتیجے میں.
خطرے کو کنٹرول کرنے کے لئے سٹاپ نقصان روکنے کے طریقہ کار کے ساتھ مشورہ دیا جاتا ہے.
آپ کو مناسب طریقے سے تجارت کے وقفے میں توسیع کے ذریعے خطرے کو کم کر سکتے ہیں.
زیادہ پیچیدہ عوامل کے ساتھ مل کر ایک بے ترتیب سگنل پیدا ہوتا ہے.
تجارتی اقسام میں اضافہ اور جانچ کے دائرہ کار میں توسیع۔
UI کی بات چیت کو بہتر بنانے اور پالیسی کنٹرول میں اضافہ کریں.
مزید ٹیسٹ ٹولز اور اشارے فراہم کریں تاکہ پیرامیٹرز کو بہتر بنایا جاسکے۔
ٹریڈنگ سگنل یا سٹاپ نقصان سٹاپ اجزاء کے طور پر دیگر حکمت عملی میں شامل کیا جا سکتا ہے.
اس حکمت عملی کا مجموعی فریم ورک مکمل ہے ، جو بے ترتیب واقعات پر مبنی ٹریڈنگ سگنل تیار کرتا ہے۔ اس میں اعلی وشوسنییتا ہے۔ اس کے ساتھ ہی پیرامیٹرز کی ایڈجسٹمنٹ ، ریٹرننگ اور نقشہ سازی کی خصوصیات بھی فراہم کی گئی ہیں۔ یہ ابتدائی ترقی کی حکمت عملی کی جانچ کے لئے استعمال کیا جاسکتا ہے اور دیگر حکمت عملیوں کے لئے بنیادی ماڈیول کے طور پر بھی کام کرسکتا ہے۔ مناسب اصلاح کے ساتھ ، حکمت عملی کی کارکردگی کو مزید نمایاں بنایا جاسکتا ہے۔
/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 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/
// © melodicfish
//@version=4
strategy("Coin Flipper Pro",overlay=true,max_bars_back=100)
// ======= User Inputs variables=========
h1=input(title="------- Trade Activity -------",defval=false)
maxBars=input(25.0,title="Max Bars between Coin Filps",step=1.0,minval=4.0)
h2=input(title="------- Position Settings -------",defval=false)
risk=input(defval=5.0,title="Risk in % ",type=input.float, minval=0.001 ,step=0.1)
ratio= input(defval=1.5,title="Risk to Reward Ratio x:1 ",type=input.float, minval=0.001,step=0.1)
h3=input(title="------- Plot Options -------",defval=false)
showBox=input(defval=true, title="Show Position Boxes")
h4=input(title="------- Back Testing -------",defval=false)
runTest=input(defval=true, title="Run Strategy Back Test")
customTime=input(defval=false, title="Use Custom Date Range for back test")
tsYear = input(2021,minval=1000,maxval=9999,title= "Test Start Year")
tsMonth = input(1,minval=1,maxval=12,title= "Test Start Month")
tsDay = input(1,minval=1,maxval=31,title= "Test Start Day")
start = timestamp(tsYear,tsMonth,tsDay,0,0)
teYear = input(2021,minval=1000,maxval=9999,title= "Test Stop Year")
teMonth = input(5,minval=1,maxval=12,title= "Test Stop Month")
teDay = input(1,minval=1,maxval=31,title= "Test Stop Day")
end = timestamp(teYear,teMonth,teDay,0,0)
// ======= variables =========
var barsBetweenflips=25
var coinFlipResult=0.0
var flip=true
var coinLabel=0.0
var stoppedOut= true
var takeProfit=true
var posLive=false
var p1=0.0
var p2=0.0
var p3=0.0
var plotBox=false
var posType=0
long=false
short=false
// ===== Functions ======
getColor() =>
round(random(1,255))
// ===== Logic ========
if barssince(flip==true)>barsBetweenflips and posLive==false
flip:=true
coinLabel:=random(1,10)
// Candle Colors
candleColor= flip==true and flip[1]==false and barstate.isconfirmed==false?color.rgb(getColor(),getColor(),getColor(),0):flip==false and close>=open?color.green:color.red
candleColor:= barstate.ishistory==true and close>=open?color.green: barstate.ishistory==true and close<open? color.red:candleColor
barcolor(candleColor)
if flip[1]==true and posLive==false
flip:=false
barsBetweenflips:=round(random(3,round(maxBars)))
posLive:=true
long:= flip[1]==true and coinLabel[1]>=5.0
short:= flip[1]==true and coinLabel[1]<5.0
// Calculate Position Boxes
if long==true and posType!=1
riskLDEC=1-(risk/100)
p1:= close[1]*(1+((risk/100)*ratio)) // TargetLine
p2:=close[1]
p3:= close[1]*riskLDEC // StopLine
plotBox:=true
posType:=1
if short==true and posType!=-1
riskSDEC=1-((risk*ratio)/100)
p1:= close[1]*riskSDEC // TargetLine
p2:=close[1]
p3:= close[1]*(1+(risk/100)) // StopLine
plotBox:=true
posType:=-1
// Check Trade Status
stoppedOut:= posType==1 and long==false and low<= p3? true: posType==-1 and short==false and high>=p3? true: false
takeProfit:= posType==1 and long == false and high>= p1? true: posType==-1 and short==false and low<=p1? true: false
if stoppedOut==true or takeProfit==true
posType:=0
plotBox:=false
posLive:=false
// ====== Plots ========
plot1=plot(plotBox and showBox? p1:na,style=plot.style_linebr,color=color.white, transp= 100)
plot2=plot(plotBox and showBox? p2:na,style=plot.style_linebr,color=color.white, transp= 100)
plot3=plot(plotBox and showBox? p3:na,style=plot.style_linebr,color=color.white, transp= 100)
fill(plot1,plot2,color= color.green)
fill(plot2,plot3,color= color.red)
plotshape(flip==true and flip[1]==false and coinLabel>=5.0,style=shape.labelup,location=location.belowbar, color=color.green,size=size.tiny,title="short label",text="Heads",textcolor=color.white)
plotshape(flip==true and flip[1]==false and coinLabel<5.0,style=shape.labeldown,location=location.abovebar, color=color.red,size=size.tiny,title="short label",text="Tails",textcolor=color.white)
if stoppedOut==true
label.new(bar_index-1, p3, style=label.style_xcross, color=color.orange)
if takeProfit==true
label.new(bar_index-1, p1, style=label.style_flag, color=color.blue)
if runTest==true and customTime==false or runTest==true and customTime==true and time >= start and time <= end
strategy.entry("Sell", strategy.short,when=short==true)
strategy.close("Sell", comment="Close Short", when=stoppedOut==true or takeProfit==true)
strategy.entry("Long", strategy.long,when=long==true)
strategy.close("Long",comment="Close Long", when= stoppedOut==true or takeProfit==true )