استراتيجية Greedy

تعريف

تفتح Greedy Strategy أمرا أوليًا إذا كانت هناك فجوة بين سعر الفتح الحالي والقمة أو القاع للعمود السابق. إذا كان الفتح أكبر من القمة السابقة، فستقوم الإستراتيجية إلى الشراء، وإذا كان الفتح أقل من قاع العمود السابق، فإنها تفتح مركزًا قصيرًا. بعد فتح الصفقة، ستستمر في تنفيذ الأوامر في نفس الاتجاه طالما أن لون الشمعة يتوافق مع المركز المفتوح. إذا كان المركز الحالي طويلًا، فسيتم إنشاء أوامر شراء جديدة لكل شمعة خضراء لاحقة والعكس صحيح. سيستمر هذا حتى الشمعة ذات اللون المختلف أو حتى يتم الوصول إلى حد الطلبات المملوءة ليوم واحد. 

يمكن تغيير الحد في الإعدادات عن طريق تحرير قيمة الحد الأقصى للأوامر المملوءة خلال اليوم. تسمح لك إعدادات Tp وSl بتعيين إيقاف الخسارة وجني الأرباح. تمثل القيمة عدد المينتيكات أعلى/أقل من سعر الصفقة حيث سيتم وضع TP وSL.

عملية الحساب

 

Pine Script
//@version=5
strategy("Greedy Strategy", pyramiding = 100, calc_on_order_fills=false, overlay=true)
tp = input(10)
sl = input(10)
maxidf = input(title="Max Intraday Filled Orders", defval=5)
strategy.risk.max_intraday_filled_orders(maxidf)
upGap = open > high[1]
dnGap = open < low[1]
dn = strategy.position_size < 0 and open > close
up = strategy.position_size > 0 and open < close
strategy.entry("GapUp", strategy.long, stop = high[1], when = upGap)
strategy.entry("Dn", strategy.short, stop = close,  when =  dn)
strategy.entry("GapDn", strategy.short, stop = low[1], when = dnGap)
strategy.entry("Up", strategy.long, stop = close,  when =  up)
strategy.cancel("GapUp", not upGap)
strategy.cancel("GapDn", not dnGap)
strategy.cancel("Up", not up)
strategy.cancel("Dn", not dn)
XQty = strategy.position_size < 0 ? -strategy.position_size : strategy.position_size
dir = strategy.position_size < 0 ? -1 : 1
lmP = strategy.position_avg_price + dir*tp*syminfo.mintick
slP = strategy.position_avg_price - dir*sl*syminfo.mintick
float nav = na
revCond = strategy.position_size > 0 ? dnGap : (strategy.position_size < 0 ? upGap : false),
strategy.order("TP", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, lmP, nav, "TPSL",  strategy.oca.reduce, "TPSL", when=  not revCond and XQty > 0)
strategy.order("SL", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, nav, slP, "TPSL",  strategy.oca.reduce, "TPSL", when= not revCond and XQty > 0)
strategy.cancel("TP", XQty == 0 or revCond)
strategy.cancel("SL", XQty == 0 or revCond)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

 

خاتمة

تم إنشاء استراتيجية Greedy للاستفادة من الفجوات في أي اتجاه. ثم تتسارع إلى تلك الفجوات من خلال لعب الزخم في الاتجاه الصاعد أو الهابط. تفتح الإستراتيجية طلبًا أوليًا إذا كانت هناك فجوة بين الفتح الحالي والقمة أو المنخفضة للعمود السابق. إذا كان الفتح أكبر من القمة السابقة، فستذهب الإستراتيجية إلى الشراء وإذا كان الفتح أقل من أدنى مستوى للعمود السابق، فإنها تفتح مركزًا قصيرًا. بعد فتح الصفقة، ستستمر في تنفيذ الأوامر في نفس الاتجاه طالما أن لون الشمعة يتوافق مع المركز المفتوح.