Bolehkah seseorang membantu saya dengan kod ini? Ia tidak cukup menarik garis trend betul. Atau jika sesiapa mempunyai cara yang lebih baik, sila beritahu saya.
Inserted Code #property indior_chart_window #property indior_buffers 2 extern int varExtDepth = 12; extern int varExtDeviation = 5; extern int varExtBackstep = 3; siling double # 91; # 93 ;; tingkat dua # 91; # 93 ;; int init () {//---- indors IndiorBuffers (2); IndiorDigits (Digit);//---- tetapan penulisan/---- penampan indior SetIndexBuffer (0, siling); SetIndexBuffer (1, lantai); SetIndexLabel (0, band atas); SetIndexLabel (1, kumpulan yang lebih rendah); SetIndexEmptyValue (0,0.0); SetIndexEmptyValue (1,0.0); ArraySetAsSeries (siling, benar); ArraySetAsSeries (lantai, benar);///kembali (0); } int deinit () {//---- ObjectDelete (Ceiling); ObjectDelete (Floor);///kembali (0); } int start () {//int counted_bars = IndiorCounted ();/int pergeseran int; bool varNewBar = funcIsNewBar (Tempoh ()); jika (varNewBar) {ObjectDelete (Ceiling); ObjectDelete (Floor); procDrawTrends (); untuk (shift = Bars-1; shiftgt; = 0; shift--) {ceiling # 91; shift # 93; = ObjectGetValueByShift (Ceiling, shift); lantai # 91; peralihan # 93; = ObjectGetValueByShift (Lantai, peralihan); }} return (0); }/ ---------------------------------------------- -------------------- void procDrawTrends () {int ZigZagHighCount = 0, ZigZagLowCount = 0, ZigZagCount = 0; int ZigZagShift = 0; double ZZHigh # 91; 2 # 93;, ZZLow # 91; 2 # 93 ;; datetime ZZHTime # 91; 2 # 93;, ZZLTime # 91; 2 # 93 ;; sementara (ZigZagHighCount lt; 3 ZigZagLowCount lt; 3) {double ZigZag = iCustom (NULL, 0, ZigZag, varExtDepth, varExtDeviation, varExtBackstep, 0, ZigZagShift); jika (ZigZag == Tinggi # 91; ZigZagShift # 93; || ZigZag == Rendah # 91; ZigZagShift # 93;) ZigZagCount == 0) {ZigZagCount ; ZigZagShift ;} else {if (ZigZag == High # 91; ZigZagShift # 93;) {ZZHigh # 91; ZigZagHighCount # 93; = ZigZag; ZZHTime # 91; ZigZagHighCount # 93; = iTime (NULL, 0, ZigZagShift); ZigZagHighCount ; ZigZagCount ; }/lakukan sebaliknya jika ZigZag == Rendah # 91; ZigZagShift # 93;) {ZZLow # 91; ZigZagLowCount # 93; = ZigZag; ZZLTime # 91; ZigZagHighCount # 93; = iTime (NULL, 0, ZigZagShift); ZigZagLowCount ; ZigZagCount ; }} ZigZagShift ; } ObjectCreate (Ceiling, OBJ_TREND, 0, ZZHTime # 91; 1 # 93;, ZZHigh # 91; 1 # 93 ;, ZZHTime # 91; 0 # 93 ;, ZZHigh # 91; 0 # 93;); ObjectCreate (Floor, OBJ_TREND, 0, ZZLTime # 91; 1 # 93;, ZZLow # 91; 1 # 93;, ZZLTime # 91; 0 # 93 ;, ZZLow # 91; 0 # 93;); ObjectSet (Siling, OBJPROP_STYLE, STYLE_SOLID); ObjectSet (Floor, OBJPROP_STYLE, STYLE_SOLID); ObjectSet (Siling, OBJPROP_WIDTH, 2); ObjectSet (Floor, OBJPROP_WIDTH, 2); ObjectSet (Siling, OBJPROP_COLOR, Biru); ObjectSet (Lantai, OBJPROP_COLOR, Merah); ObjectSet (Siling, OBJPROp_RAY, benar); ObjectSet (Lantai, OBJPROp_RAY, benar);/---- string varMessage, n = \ n; varMessage = StringConenate (ZigZagCount:, ZigZagCount, n, ZigZagHighCount:, ZigZagHighCount, n, ZigZagLowCount:, ZigZagLowCount, n, ZZHTime # 91; 0 # 93 ;:, funcSetDateTime (ZZHTime # 91; 0 # 93;), n, ZZHigh # 91; 0 # 93 ;:, ZZHigh # ZZHTime # 91; 1 # 93 ;:, funcSetDateTime (ZZHTime # 91; 1 # 93;), n, ZZHigh # 91; 1 # 93 ;:, ZZHigh # 91; 1 # 93 ;, ZZLTime # 91; # 93 ;:, funcSetDateTime (ZZLTime # 91; 0 # 93;), n, ZZLow # 91; 0 # 93 ;:, ZZLow # 91; 0 # 93; funcSetDateTime (ZZLTime # 91; 1 # 93;), n, ZZLow # 91; 1 # 93 ;:, ZZLow # 91; 1 # 93;); Komen (varMessage); pulangan (0); } string funcSetDateTime (datetime varTime) {datetime curtime = varTime; int theday = TimeDay (curtime); int themonth = TimeMonth (curtime); int itear = TimeYear (curtime); int thehour = TimeHour (curtime); int theminute = TimeMinute (curtime); string thedate = StringConenate (themonth,, theday,, weidute,, thehour,:, theminute); kembali (tarikh); }/ ---------------------- sokongan funcion (s) ------------------- ----- bool funcIsNewBar (int timeFrame) {bool res = false;/array mengandungi masa buka bar semasa (sifar)/untuk 7 (tujuh) masa jadual statik stats _sTime # 91; 7 # 93 ;; int i = 6;/Nota: i di bawah akan menjadi 6 atau tempoh masa akan menjadi hari. suis (timeFrame) {kes 1: i = 0; pecah; kes 5: i = 2; pecah; kes 15: i = 3; pecah; kes 30: i = 4; pecah; kes 60: i = 5; pecah; kes 240: pecah; kes 1440: pecah; lalai: timeFrame = 1440; }//---- jika (_sTime # 91; i # 93; == 0 || _sTime # 91; i # 93;! = iTime (Symbol (), timeFrame, 0)) {_sTime # 93; = iTime (Simbol (), timeFrame, 0); res = benar; }/---- kembali (res); }