Histogram Indior Question คำถาม
หน้า 1 จาก 1002 12 ล่าสุดล่าสุด
Results 1 to 10 of 15

Thread: Histogram Indior Question คำถาม

  1. #1
    สวัสดี
    ใครช่วยกรุณาโดยการโพสต์รหัสขั้นต่ำแน่นอนที่จำเป็นในการแปลงค่าเป็น histogram? (ค่าที่ฉันใช้งานคือความแตกต่างของ pip ระหว่าง Pair1 และ Pair2 เป็นต้น)

    ฉันได้รับ messing เกี่ยวกับมันโดยการขโมยบิตจากที่นี่และที่นั่น แต่จากบิตฉันได้คัดลอกจากตัวชี้วัดอื่น ๆ ฉันไม่สามารถตัวเลขวิธีการระบุ 0 จุดสำหรับแถบ histogram มาจากหรือหมายเลข ของบาร์กลับไปคำนวณ ฉันยังต้องการมีช่วงคงที่ /- สำหรับฮิสโตแกรม

    ขอบคุณมาก ๆ.
    จอห์น

  2. #2
    สวัสดีจอห์นหวังว่านี่จะทำให้คุณก้าวเข้ามาใกล้ ๆ แทนของสิ่งที่มีประโยชน์มากขึ้นก็เพียงแค่วางแผนตำแหน่งของการปิดในแต่ละเทียนเป็นเปอร์เซ็นต์ของความสูงของเทียน ช่วงของตัวบ่งชี้ subwindow ถูกกำหนดโดย: #property indior_minimum -10 #property indior_maximum 110 ระดับ (เส้นประซึ่งเป็นตัวเลือก) พล็อตโดย: #property indior_level1 100 #property indior_level2 0 จำนวนแถบ histogram ถูกกำหนดโดยลูป: for (int i = 0; ilt; บาร์; i ) {0 = แถบด้านขวาสุด (ล่าสุด) บนแผนภูมิบาร์ = ตัวแปรที่กำหนดไว้ล่วงหน้าให้จำนวนบาร์ในแผนภูมิ David แทรกรหัส/ -------------- -------------------------------------------------- - /| Histogram sample.mq4 |/ ----------------------------------------------- ------------------- #property indior_separate_window # property indior_minimum -10 #property_maximum 110 # คุณสมบัติ indior_level1 100 # คุณสมบัติ indior_level2 0 # คุณสมบัติตัวบ่งชี้ดัชนี 1 คู่ HistBuffer # 91; # 93 ;;/ ----------------------------------------------- ------------------- int init () {// ---------------------- -------------------------------------------- SetIndexBuffer (0, HistBuffer ); SetIndexStyle (0, DRAW_HISTOGRAM, STYLE_SOLID, 3, สีแดง); IndiorDigits (0); ผลตอบแทน (0); }/ ---------------------------------------------- -------------------- int deinit () {// --------------------- --------------------------------------------- กลับ (0) ; }/ ---------------------------------------------- -------------------- int start () {// --------------------- --------------------------------------------- for (int i = 0; ilt; Bars; i ) {if (สูง # 91; i # 93; -Low # 91; i # 93; gt; 0) HistBuffer # 91; i # 93; = 100 * (ปิด # 91; # 93; - ต่ำ # 91; i # 93(สูง # 91; ฉัน # 93; - ต่ำ # 91; ฉัน # 93; } return (0); }

  3. #3
    สวัสดีเดวิดขอบคุณมาก! นี้จะช่วยฉันในทางของฉัน สิ่งที่ดีที่สุด John

  4. #4
    โอเคจัดเรียงของมีบางอย่างที่ทำงาน มีบางประเด็นอย่างไรก็ตาม ขั้นแรกให้ฉันอธิบายสิ่งที่ฉันพยายามจะทำ ฉันต้องการเปรียบเทียบความแตกต่างระหว่าง Pair1 กับ Pair2 (ในกรณีนี้คือ EURUSD และ GBPUSD) ฉันใช้ราคาเปิดของวันเป็นจุดศูนย์ ดังนั้นเราจึงใช้ราคาเปิดของ 1.6120 และลบราคาปัจจุบันของ 1.6100 และเราเห็นว่าราคาได้ย้ายลง 20 pips ในขณะนี้ ทำเช่นเดียวกันสำหรับคู่อื่น ๆ และมากับการย้ายท่อ 40 (ตัวอย่างเช่น) สมมติว่าเรามี GBPUSD = (- 20) และ EURUSD = (- 40) เราสามารถเห็นได้ว่าทั้งสองคู่กำลังขยับลงจากที่เปิดและยูโรอยู่ในภาวะชะลอตัวลง 20 pips สิ่งที่ฉันกำลังพยายามทำคือสร้างฮิสโทแกรมเล็ก ๆ น้อย ๆ ที่แสดงให้เห็นถึงความแตกต่างนี้ รหัสด้านล่าง (ซึ่งถูกตัดและวางโดยฉันจากตัวบ่งชี้ Swingman เขียนและชิ้นจากด้านบน) ไม่สวยมากสิ่งที่ฉันต้องการ ในขณะนี้เป็นเพียงการแสดงราคาจากการเปิด histogram (สำหรับหนึ่งคู่) และนี่ทำให้ฉันออก number1 ฉบับที่ 1) ขณะนี้ตัวบ่งชี้คือการขีดเขียนด้วยติ๊ก ซึ่งเป็นที่ดี แต่ถ้าคุณโหลดลงในแผนภูมิใหม่ที่คุณต้องรอชั่วโมงนาทีวันเพื่อให้มันเติมข้อมูล มีวิธีที่จะเรียกเห็บครั้งล่าสุด (ฉันเดา thats สิ่งเดียวกับปิด huh?) และเติมบาร์ทั้งหมดที่นอกเหนือจากแถบปัจจุบันหรือไม่? มีการโทรที่ดีกว่า MarketInfo Mode_Bid เพื่อคำนวณค่านี้ด้วยหรือไม่? ฉบับที่ 2) นี่เป็นขั้นสูงกว่า แต่จะเป็นไปได้ที่จะทำเครื่องหมาย blip ที่ด้านบนด้านล่างของฮิสโตแกรมเพื่อบ่งชี้ถึงระดับสูงต่ำเช่นใน equalizer แบบสเตอริโอเนื่องจากแถบ histo อาจตีสูงต่ำและ แล้วรับก่อนปิด? ฉบับที่ 3) ตอนนี้ฉันกำลังป้อนวันที่เริ่มต้นด้วยตนเอง สิ่งที่จะเป็นรหัสที่จะมีตัวบ่งชี้เริ่มต้นโดยอัตโนมัติเมื่อเปิดเทียนสุดท้าย 1:00 00:00? ความคิดของฉันอาจเป็นใบ้ แต่ฉันต้องการจะเล่นมันออกไปจนจบ ฉันหวังว่าจะใช้ตัวบ่งชี้นี้เพื่อให้เห็นภาพช่วงของความแตกต่างของ pip ระหว่างคู่ที่มีความสัมพันธ์กัน ความคิดของฉันคือถ้าคุณได้รับความรู้สึกของช่วงของความสัมพันธ์ในแต่ละวันแล้วคุณสามารถป้อนการค้าเมื่อส่วนใหญ่ของคุณและการค้ากลับไปที่ศูนย์ ถ้าใครมีความคิดเกี่ยวกับจุดข้างต้นฉันหูทั้งหมด ท้ายที่สุดนี่คือสิ่งที่ฉันต้องการเขียนว่าตัวเองเป็นกระบวนการเรียนรู้ แต่ความช่วยเหลือของคุณในการคัดเลือกฉันในทิศทางที่ถูกต้องจะได้รับการชื่นชม ขอบคุณ John ใส่รหัส/ ------------------------------------------- ----------------------- /| Histogram sample.mq4 |/ ----------------------------------------------- ------------------- #property indior_separate_window # property indior_minimum -100 #property_maximum 150 # คุณสมบัติ indior_level1 100 # คุณสมบัติ indior_level2 -150 # property indior_buffers 1 double HistBuffer # 91; # 93 ;; extern string Pair1 = GBPUSD; extern string Pair2 = EURUSD; extern int StartDate = D'2009.7.8 00:00 '; extern สตริง StartingTimeCorr = 2009.07.08 00:00; extern int TFperiod = 60;extern int moreBars = 0; double ExtMapBuffer1 # 91; # 93 ;; double ExtMapBuffer2 # 91; # 93 ;; ดับเบิล dPoint; int iWindow; int firstBar; int _BarsCount, _LastBar; int init () {SetIndexBuffer (0, HistBuffer); SetIndexStyle (0, DRAW_HISTOGRAM, STYLE_SOLID, 3, สีแดง); IndiorDigits (4); ผลตอบแทน (0); }/ ---------------------------------------------- -------------------- int deinit () {return (0); }/ ---------------------------------------------- -------------------- int start () {double price_1 = MarketInfo (Pair1, MODE_ASK); double Open_Pair1 = iOpen (Pair1, PERIOD_M1, iBarShift (NULL, PERIOD_M1, {StartDate}, True)); firstBar = iBarShift (NULL, TFperiod, StrToTime (StartingTimeCorr) จริง); ถ้า (firstBar lt; 0) {การแจ้งเตือน (StartingTimeCorr ดูเหมือนจะผิด); กลับ (0); } RefreshRates (); ArrayInitialize (ExtMapBuffer1, 0.0); ArrayInitialize (ExtMapBuffer2, 0.0); _BarsCount = WindowBarsPerChart () moreBars 1; int _FirstBar = firstBar; int _LastBar = _FirstBar - _BarsCount moreBars 1; if (_LastBar lt; 0) {_LastBar = 0; _BarsCount = _FirstBar moreBars 1; } int i = 0;/ILT; บาร์; i ) {//if (สูง # 91; i # 93; - ต่ำ # 91; i # 93; gt; 0) HistBuffer # 91; i # 93; = ((ราคา 1) - (Open_Pair1)) * 10000); } return (0); }

  5. #5
    ตกลง. มีการทำงานมากหรือน้อย ผิดปกติ; ฉันได้ผลลัพธ์ที่แตกต่างกันเมื่ออยู่ในแผนภูมิที่แตกต่างกันแม้ว่าแผนภูมิทั้งสองควรจะเรียกข้อมูลเดียวกัน ความคิดใด? แทรกรหัส/ --------------------------------------------- --------------------- /| JM_Pip Differential v1.006.mq4 |/ ----------------------------------------------- ------------------- #property indior_separate_window #property indior_minimum -200 # property indior_maximum 200 # property indior_level1 100 # property indior_level2 -100 # property indior_level3 -50 # property indior_level4 50 #property indior_level5 0 #property indior_buffers 1/---- พารามิเตอร์การป้อนค่าภายนอกสี FontColor = สีแดง; extern int FontSize = 18; สายอักขระภายนอก FontType = Arial Black; extern string Pair1 = GBPUSD; extern string Pair2 = EURUSD; extern int StartDate = D'2009.7.8 00:00 '; extern สตริง StartingTimeCorr = 2009.07.08 00:00; extern int TFperiod = 60; extern int moreBars = 0; extern คู่ Range = 200;/---- ตัวแปร int iWindow; int firstBar; int _BarsCount, _LastBar; double HistBuffer # 91; # 93 ;; double ExtMapBuffer1 # 91; # 93 ;; double ExtMapBuffer2 # 91; # 93 ;; ดับเบิล dPoint;/ ----------------------------------------------- ------------------- /| ฟังก์ชันการเริ่มต้นตัวบ่งชี้ที่กำหนดเอง |/ ----------------------------------------------- ------------------- int init () {SetIndexBuffer (0, HistBuffer); SetIndexStyle (0, DRAW_HISTOGRAM, STYLE_SOLID, 3, สีแดง); IndiorDigits (0); ผลตอบแทน (0); }/ ---------------------------------------------- -------------------- /| ฟังก์ชัน deinitialization ตัวบ่งชี้ที่กำหนดเอง |/ ----------------------------------------------- ------------------- int deinit () {ObjectDelete (Pip_Diff_Label); ObjectDelete (Buy_Sell_Label); ผลตอบแทน (0); }/ ---------------------------------------------- -------------------- int start () {double price_1 = MarketInfo (Pair1, MODE_ASK); double_2 = MarketInfo (คู่ 2, MODE_ASK); double Open_Pair1 = iOpen (Pair1, PERIOD_M1, iBarShift (NULL, PERIOD_M1, {StartDate}, True)); double Open_Pair2 = iOpen (คู่ 2, PERIOD_M1, iBarShift (NULL, PERIOD_M1, {StartDate}, True)); double Variance1 = ((ราคา 1-Open_Pair1) * 10000); double Variance2 = ((ราคา 2-Open_Pair2) * 10000); double Differential = Variance1-Variance2; int Output1 = ความแปรปรวน 1; int Output2 = ความแปรปรวน 2; firstBar = iBarShift (NULL, TFperiod, StrToTime (StartingTimeCorr) จริง); ถ้า (firstBar lt; 0) {การแจ้งเตือน (StartingTimeCorr ดูเหมือนจะผิด); กลับ (0); } RefreshRates (); ArrayInitialize (ExtMapBuffer1, 0.0); ArrayInitialize (ExtMapBuffer2, 0.0); _BarsCount = WindowBarsPerChart () moreBars 1; int _FirstBar = firstBar; int _LastBar = _FirstBar - _BarsCount moreBars 1; if (_LastBar lt; 0) {_LastBar = 0;_BarsCount = _FirstBar moreBars 1; } int i = 0;/ILT; บาร์; i )/เพิ่มจำนวนหนาเพื่อสตริงหน้าต่าง histogram Pip_Diff = DoubleToStr (Differential, 0); ObjectCreate (Pip_Diff_Label, OBJ_LABEL, 1, 0, 0); ObjectSetText (Pip_Diff_Label, Pip_Diff, FontSize, FontType, FontColor); ObjectSet (Pip_Diff_Label, OBJPROP_CORNER, 1); ObjectSet (Pip_Diff_Label, OBJPROP_XDISTANCE, 1); ObjectSet (Pip_Diff_Label, OBJPROP_YDISTANCE, 1); {HistBuffer # 91; i # 93; = Differential; IndiorShortName (Differential Pair2 = ( Output2 ) Pair1 = ( เอาต์พุต 1 )); } return (0); }

  6. #6

    Quote Originally Posted by ;
    ผิดปกติ; ฉันได้ผลลัพธ์ที่แตกต่างกันเมื่ออยู่ในแผนภูมิที่แตกต่างกันแม้ว่าแผนภูมิทั้งสองควรจะเรียกข้อมูลเดียวกัน ความคิดใด?
    iBarShift (NULL, ..... ) จะส่งคืนจำนวนเทียนของคู่ที่มีการแนบแผนภูมิ บางที iBarShift (Pair1, ..... ) ฯลฯ จะทำงานได้ดีขึ้นหรือไม่? ขออภัยฉันไม่มีเวลาที่จะเดินผ่านรหัสของคุณในรายละเอียดดังนั้นฉันเพียงคาดเดา

  7. #7
    ขอบคุณจะให้ที่ลอง

  8. #8
    คนได้โปรดให้ฉันทราบอย่างรวดเร็วว่าข้อมูลคุณลงในอาร์เรย์? ฉันได้รับความช่วยเหลือ MT4 แต่มันคลุมเครือเกินไปสำหรับฉันในเรื่องนี้ โดยทั่วไปฉันมีค่า 20 ค่าเฉลี่ยที่ฉันต้องการ ฉันใช้คณิตศาสตร์อื่นเพื่อสร้างค่าเหล่านี้ดังนั้นฉันจึงไม่สามารถใช้ [ปิดราคาช่วง 20] ได้เช่น ดังนั้นสำหรับแต่ละแถบฉันกำลังสร้างตัวเลข ฉันต้องการจะหาค่าเฉลี่ย 20 เบอร์สุดท้ายของจำนวนนี้และทำคณิตศาสตร์อื่น ๆ บ้าง ฉันคาดเดาอาร์เรย์เป็นวิธีที่จะทำ แต่ฉันหายไปที่จะเริ่มต้น คำแนะนำใด ๆ จะนิยมมาก ขอบคุณ John

  9. #9
    myarray คู่ [20]; myarray [0] = ค่า1;/ค่าแรก myarray [1] = value2;/ค่าที่สอง . . myarray [19] = มูลค่า 20;/20 ค่า averageval = 0; สำหรับ (int i = 0; ilt; 20; i ) {averageval = averageval myarray [i]; } averageval = averageval20;

  10. #10
    สวัสดีอีวานขอบคุณมากสำหรับเรื่องนี้ คุณช่วยอธิบายคำอธิบายสั้น ๆ เกี่ยวกับสิ่งที่ i สำหรับฉันและสิ่งที่ทำในโค้ดข้างต้นได้หรือไม่? ฉันเข้าใจว่ามันคือการเพิ่ม 1 เพื่อตัวเองและอื่น ๆ แต่ฉันบิตเลือนกับที่ ขอบคุณ John

การขออนุญาตโพส

  • ห้ามโพสข้อความใหม่
  • ห้ามโพสตอบ
  • ห้ามแนบไฟล์
  • ห้ามแก้ไขโพส
  •  
  • รหัส BB เปิด
  • Smilies ปิด
  • รหัส [IMG] เปิด
  • รหัส [VIDEO] เปิด
  • รหัส HTML ปิด
นโยบาย Cookie
นโยบาย Cookie: เว็บไซต์ thaitradeforex มีการใช้ cookies และสำหรับการดำเนินการเยี่ยมชมเว็บไซต์ ท่านได้ยอมรับในสิ่งนี้ สำหรับข้อมูลเพิ่มเติมโปรดอ่าน 'Cookie Disclosure'.