حکمت عملی ڈویلپر کی ضروریات
مختلف مارکیٹوں کے لئے مختلف اشاریہ جات کی ضرورت ہے۔ کیا میں مختلف اسٹاپ نقصان کی قیمتوں کو مختلف ابتدائی حالات کے مطابق ترتیب دے سکتا ہوں؟
مثال کے طور پر ، روایتی ماڈل میں لکھے گئے بریک اپ کی شرائط میں مختلف کھلنے کی شرائط میں کوئی فرق نہیں ہے۔
مندرجہ ذیل کوڈ ایک سادہ روایتی حکمت عملی ہے جس میں اسٹوریج کی شرائط کو الگ نہیں کیا گیا ہے:
MA5^^MA(C,5);
MA10^^MA(C,10);
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K..SMA(RSV,3,1);
D..SMA(K,3,1);
CROSS(MA5,MA10)||CROSS(K,D),BK;
C>HV(H,10)||C<BKPRICE-5*MINPRICE,SP;
AUTOFILTER;
اور گروپ بندی کی ہدایات کا استعمال مختلف ہے.
تقسیم کی ہدایات میں صفائی کی شرائط کو n گروپوں میں تقسیم کیا جاسکتا ہے ، ایک گروپ کی شرائط کھولنے والی پوزیشن صرف ایک گروپ کے مطابق صفائی کی شرائط کو صاف کرسکتی ہے ، دوسرے گروپوں کی صفائی کی شرائط کو پورا کرنے کے لئے کوئی اشارہ نہیں کیا جاتا ہے ، نہ ہی اس کا انعقاد کیا جاتا ہے۔
مثال کے طور پر
پہلا گروپ
MA5^^MA(C,5);
MA10^^MA(C,10);
CROSS(MA5,MA10),BK;
CROSS(MA10,MA5),SP;
دوسرا گروپ زیادہ شرائط
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K..SMA(RSV,3,1);
D..SMA(K,3,1);
CROSS(K,D),BK;
C>HV(H,10)||C<BKPRICE-5*MINPRICE,SP;
ایک ہی ماڈل میں مختلف گروپوں کی شرائط کو کس طرح الگ کیا جائے؟ آئیے ان کا اطلاق کرتے ہیں۔
سب سے پہلے، ماڈل کو فلٹر ماڈل اور غیر فلٹر ماڈل میں تقسیم کیا گیا ہے:
فلٹرنگ ماڈل: مختلف کھلنے والے حالات کو مختلف بریفنگ کے حالات کے ساتھ بریفنگ کرنا چاہتے ہیں ، جو ہدایت کو گروپ کرنے کے لئے استعمال کیا جاسکتا ہے۔
غیر فلٹرنگ ماڈل: پہلی بار انٹری کی حکمت عملی ہولڈنگ کی حکمت عملی سے مختلف ہے ، اور اگر آپ مختلف اسٹاپ نقصان کی حکمت عملی کے ساتھ ہولڈنگ کرنا چاہتے ہیں تو ، اس کا استعمال ہدایات کے گروپ کے ذریعہ کیا جاسکتا ہے۔
فلٹرنگ ماڈل
//A组指令
A组的开多条件,BK('A');
A组的开空条件,SK('A');
A组的平多条件,SP('A');
A组的平空条件,BP('A');
//B组指令
B组的开多条件,BPK('B');
B组的开空条件,SPK('B');
B组的平多条件,SP('B');
B组的平空条件,BP('B');
AUTOFILTER;//过滤函数
نوٹ: فلٹرنگ ماڈل کے گروپس کو ٹرانزیکشن کی ہدایات کے بعد گروپس میں شامل کرنے کی ضرورت ہوتی ہے اور اسے ایک واحد کوٹ کے ساتھ جوڑا جاتا ہے۔ مثال کے طور پر BK ((
غیر فلٹر شدہ ماڈل
//A组指令
A组的开多条件1,BK('A',2);
A组的开空条件1,SK('A',2);
A组的加多条件2,BK('A',1);
A组的加空条件2,SK('A',1);
A组的平多条件,SP('A',GROUPBKVOL('A'));
A组的平空条件,BP('A',GROUPSKVOL('A'));
//B组指令
B组的加多条件,BK('B',1);
B组的加空条件,SK('B',1);
B组的平多条件1,SP('B',GROUPBKVOL('B'));
B组的平空条件1,BP('B',GROUPSKVOL('B'));
نوٹ: غیر فلٹر شدہ ماڈل میں گروپس کو ٹرانزیکشن کی ہدایت کے بعد گروپس اور ہینڈ نمبر شامل کرنے کی ضرورت ہوتی ہے ، اور گروپس کو ایک کوٹیشن کے ساتھ جوڑنا پڑتا ہے۔
مثال کے طور پر BK ((
فلٹرنگ ماڈل: پہلے گروپ فلٹرنگ اور پھر سگنل فلٹرنگ
گروپ فلٹرنگ کا مطلب یہ ہے: اگر پچھلی K لائن کا سگنل گروپ A کا کھلتا ہوا سگنل ہے (BK SK BPK SPK) تو موجودہ K لائن صرف گروپ A کا کھلتا ہوا سگنل ہے۔ اگر پچھلی K لائن کا سگنل گروپ A کا کھلتا ہوا سگنل ہے (BP SP) تو موجودہ K لائن کسی بھی گروپ کا کھلتا ہوا سگنل ہو سکتا ہے۔
غیر گرڈڈ پوزیشننگ کی شرط صرف غیر گرڈڈ پوزیشننگ کی شرط ہے
سگنل فلٹرنگ کا مطلب ہے: صاف سگنل فلٹرنگ
ان کی ترجیحات:
غیر فلٹر شدہ ماڈل:
اس کے بعد ہم چند حکمت عملیوں کی مثالیں دیں گے تاکہ ہم کوڈ لکھتے وقت ان ہدایات کو کس طرح منظم کیا جاتا ہے۔
فلٹرنگ ماڈل
تجارت کے خیالات: رجحانات کا تعین کرنے کے لئے معیارات کے طور پر 20 اور 60 سائیکلوں کے درمیان یکساں لائن گولڈ فورک مارجن۔
کوڈ:
MA20^^MA(C,20);
MA60^^MA(C,60);
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
HH:=HV(H,10);
LL:=LV(L,10);
MA20>MA60&&H>HH&&C>O,BK('A');
MA20<MA60&&L<LL&&C<O,SK('A');
L<LV(L,5)||CROSSDOWN(MA20,MA60)||C<BKPRICE-5*MINPRICE,SP('A');
H>HV(H,5)||CROSSUP(MA20,MA60)||C>SKPRICE+5*MINPRICE,BP('A');//只平A组开仓
MA20>MA60&&CROSSUP(K,D)&&C>O,BK('B');
MA20<MA60&&CROSSDOWN(K,D)&&C<O,SK('B');
C>BKPRICE+5*MINPRICE||C<BKPRICE-2*MINPRICE||C<REF(L,BARSBK),SP('B');
C<SKPRICE-5*MINPRICE||C>SKPRICE+2*MINPRICE||C>REF(H,BARSSK),BP('B');//只平B组开仓
//不同的开仓条件开仓,用不同的平仓条件,有针对性的平仓。达到不同行情试用不同策略的目的。
AUTOFILTER;
غیر فلٹر شدہ ماڈل
تجارت کا خیال: 5 اور 10 سائیکلوں کے درمیان یکساں طور پر گولڈ فورک مارکر پہلی بار کھولنے کی شرط کے طور پر۔
کوڈ:
MA5^^MA(C,5);
MA10^^MA(C,10);
MA20:=MA(C,20);
MA60^^MA(C,60);
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
HH:=HV(H,10);
LL:=LV(L,10);
CROSSUP(MA5,MA10)&&BKVOL=0&&C>=O,BK('A',2);
CROSSDOWN(MA5,MA10)&&SKVOL=0&&C<=O,SK('A',2);
CROSSUP(MA5,MA60)&&ISLASTBK&&BKVOL=2,BK('A',1);
CROSSDOWN(MA5,MA60)&&ISLASTSK&&SKVOL=2,SK('A',1);
MA5>MA60&&H>HH&&ISLASTSP&&REF(GROUPBKVOL('A'),BARSSP+1)>0,BK('B',1);
MA5<MA60&&L<LL&&ISLASTBP&&REF(GROUPSKVOL('A'),BARSBP+1)>0,SK('B',1);
L<LV(L,5)||C<REF(L,BARSBK)&&(C<BKPRICE-2*MINPRICE),SP('A',GROUPBKVOL('A'));
H>HV(H,5)||C>REF(H,BARSSK)&&(C>SKPRICE+2*MINPRICE),BP('A',GROUPSKVOL('A'));
C>BKPRICE+10*MINPRICE||CROSSDOWN(MA5,MA60),SP('B',BKVOL);
C<SKPRICE-10*MINPRICE||CROSS(MA5,MA60),BP('B',SKVOL);
مندرجہ بالا دونوں اقسام کے ماڈلوں کے مخصوص کیس تجزیہ ہیں، جس سے قارئین دیکھ سکتے ہیں کہ مائی زبان کس طرح گروپ بندی کے احکامات کو سنبھالتی ہے، ہر کوئی اپنی حکمت عملی کی منطق کے مطابق مختلف گروپ بندی کی ضروریات کو تیار کرسکتا ہے، تاکہ وہ کوڈ میں واضح اور کم سے کم غلطیوں کے ساتھ بیان کرنے کی کوشش کرے۔