Wednesday 12 July 2017

ง่าย เฉลี่ยเคลื่อนที่ ซอร์สโค้ด


ฉันเป็นหลักมีอาร์เรย์ของค่าเช่นนี้อาร์เรย์ข้างต้นเป็น oversimplified ฉัน m เก็บ 1 ค่าต่อมิลลิวินาทีในรหัสจริงของฉันและฉันต้องดำเนินการออกในขั้นตอนฉันเขียนเพื่อหาจุดสูงสุดที่ใกล้เคียงที่สุดก่อนจุดในเวลา ตรรกะล้มเหลวเนื่องจากในตัวอย่างข้างต้นของฉัน 0 36 เป็นยอดจริง แต่อัลกอริทึมของฉันจะมองย้อนกลับไปและดูจำนวนสุดท้าย 0 25 เป็นยอดมากที่สุดเนื่องจากมี sa ลดลงเหลือ 0 24 ก่อนที่เป้าหมายจะใช้ค่าเหล่านี้ และใช้วิธีการที่พวกเขาซึ่งจะเรียบพวกเขาออก bit เพื่อให้ฉันมีค่าเชิงเส้นมากขึ้นเช่นฉันต้องการผลของฉันจะ curvy ไม่ jaggedy. I เคยได้รับการบอกให้ใช้ตัวกรองค่าเฉลี่ยชี้แจงค่าของฉันฉันจะ ทำอย่างนี้มันยากมากสำหรับผมที่จะอ่านสมการทางคณิตศาสตร์ผมจัดการที่ดีมากกับรหัสฉันจะประมวลผลค่าในอาร์เรย์ของฉันใช้การคำนวณค่าเฉลี่ยเคลื่อนที่ชี้แจงไปแม้พวกเขา out. asked กุมภาพันธ์ 8 12 ที่ 20 27 เมื่อต้องการคำนวณ ค่าเฉลี่ยเคลื่อนที่ที่ชี้แจงคุณต้องเก็บข้อมูลบางส่วนไว้รอบ ๆ และ คุณต้องการพารามิเตอร์การปรับค่านี้เรียกระดับเล็กน้อยสมมติว่าคุณกำลังใช้ Java 5 ขึ้นไประบุว่าพารามิเตอร์ที่สลายตัวที่คุณต้องการอาจใช้การปรับค่าควรอยู่ระหว่าง 0 ถึง 1 และใช้ค่าเฉลี่ยในการกรองเมื่ออ่านหน้าของคณิตศาสตร์บางส่วน สิ่งที่คุณจำเป็นต้องรู้จริงๆเมื่อเปลี่ยนเป็นรหัสเป็นที่ mathematicians ชอบเขียนดัชนีในอาร์เรย์และลำดับกับ subscripts พวกเขา ve notations อื่น ๆ ไม่กี่ที่ดีซึ่ง doesn t ช่วยอย่างไรก็ตาม EMA สวยง่ายๆตามที่คุณต้องการ จำได้ว่าค่าเก่าไม่มีอาร์เรย์ของรัฐที่ซับซ้อน required. rieded Feb 8 12 at 20 42 TKKocheran สวยมาก Isn t มันดีเมื่อสิ่งที่สามารถทำได้ง่ายถ้าเริ่มต้นด้วยลำดับใหม่ได้รับ averager ใหม่โปรดทราบว่าคำไม่กี่คำแรกใน ลำดับเฉลี่ยจะกระโดดไปรอบ ๆ เล็กน้อยเนื่องจากผลกระทบขอบเขต แต่คุณจะได้รับผู้ที่มีค่าเฉลี่ยเคลื่อนที่อื่น ๆ ด้วยอย่างไรก็ตามข้อได้เปรียบที่ดีคือคุณสามารถตัดตรรกะเฉลี่ยเคลื่อนที่ลงใน averager และทดสอบโดยไม่รบกวน t เขาส่วนที่เหลือของโปรแกรมของคุณมากเกินไป Donal Fellows กุมภาพันธ์ 9 12 ที่ 0 06.I am มีช่วงเวลาที่ยากเข้าใจคำถามของคุณ แต่ฉันจะพยายามตอบ anyway.1 หากอัลกอริทึมของคุณพบ 0 25 แทน 0 36 แล้วมันไม่ถูกต้อง มันไม่ถูกต้องเพราะจะถือว่าเพิ่มขึ้นหรือลดลง monotonic ที่มักจะขึ้นหรือมักจะไปลงถ้าคุณไม่เฉลี่ยข้อมูลทั้งหมดของคุณข้อมูลของคุณ --- จุดที่คุณนำเสนอพวกเขา --- ไม่เชิงเส้นถ้าคุณต้องการที่จะหาสูงสุด ค่าระหว่างสองจุดในเวลาแล้วชิ้นอาร์เรย์ของคุณจาก tmin เพื่อ tmax และหาสูงสุดของ subarray.2 ที่ตอนนี้แนวคิดของค่าเฉลี่ยเคลื่อนที่ง่ายมากคิดว่าฉันมีรายการต่อไปนี้ 1 4, 1 5, 1 4, 1 5, 1 5 ฉันสามารถเรียบออกโดยใช้ค่าเฉลี่ยของสองตัวเลข 1 45, 1 45, 1 45, 1 5 ขอให้สังเกตว่าหมายเลขแรกเป็นค่าเฉลี่ยของ 1 5 และ 1 4 วินาทีและหมายเลขแรกรายการใหม่ที่สอง เป็นค่าเฉลี่ยของ 1 4 และ 1 5 รายการเก่าที่สามและที่สองรายการใหม่ที่สามค่าเฉลี่ยของ 1 5 และ 1 4 4 และ 3 และอื่น ๆ ที่ฉันสามารถ ได้ทำให้มันเป็นระยะเวลาสามหรือสี่หรือ n สังเกตว่าข้อมูลมีความราบรื่นมากขึ้นวิธีที่ดีในการดูค่าเฉลี่ยเคลื่อนที่ในที่ทำงานคือไปที่ Google Finance เลือกสต็อกลองใช้ Tesla Motors volatile TSLA และคลิกเทคนิคที่ด้านล่าง แผนภูมิเลือก Moving Average กับช่วงเวลาหนึ่ง ๆ และค่าเฉลี่ยเคลื่อนที่แบบ Exponential เพื่อเปรียบเทียบความแตกต่างของค่าเฉลี่ยของค่าเฉลี่ยที่เป็นค่าลบนี้เป็นเพียงการอธิบายรายละเอียดอื่น ๆ แต่น้ำหนักข้อมูลเก่าน้อยกว่าข้อมูลใหม่นี้เป็นวิธีที่จะทำให้เกิดการปรับให้เรียบไปทางด้านหลัง โปรดอ่านรายการวิกิพีเดียดังนั้นนี่เป็นความคิดเห็นมากกว่าคำตอบ แต่กล่องความคิดเห็นเล็ก ๆ น้อย ๆ เป็นเพียงโชคเล็ก ๆ ถ้าคุณมีปัญหาเกี่ยวกับคณิตศาสตร์คุณสามารถไปกับค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายแทนการแทนดังนั้น ผลลัพธ์ที่คุณได้รับจะเป็นเงื่อนไข x ล่าสุดหารด้วย x pseudocode ที่ยังไม่ได้ตรวจสอบโปรดทราบว่าคุณจะต้องจัดการกับจุดเริ่มต้นและจุดสิ้นสุดของข้อมูลเนื่องจากคุณสามารถ t เฉลี่ย 5 คำสุดท้ายได้เมื่อคุณอยู่ในจุดข้อมูลที่ 2 ของคุณ , เป็นวิธีที่มีประสิทธิภาพมากขึ้นในการคำนวณผลรวมรวมเฉลี่ยเคลื่อนที่นี้ - เก่าที่สุดที่เก่าที่สุด แต่นี้คือการได้รับแนวคิดของสิ่งที่เกิดขึ้นข้ามตอบ 8 กุมภาพันธ์ที่ 20 41.MetaTrader 4 - ผู้เชี่ยวชาญเฉลี่ยเฉลี่ย - ผู้เชี่ยวชาญสำหรับ MetaTrader 4 ผู้เชี่ยวชาญด้านการเคลื่อนที่โดยเฉลี่ยสำหรับการสร้างสัญญาณการค้าใช้ค่าเฉลี่ยเคลื่อนที่หนึ่งตำแหน่งการเปิดและปิดตำแหน่งจะดำเนินการเมื่อค่าเฉลี่ยเคลื่อนที่ตรงกับราคาที่แถบแท่งบาร์ที่เพิ่งมีการจัดทำดัชนีเท่ากับ 1 ขนาดล็อตจะได้รับการปรับให้เหมาะสมตามอัลกอริธึมพิเศษผู้เชี่ยวชาญ ที่ปรึกษาวิเคราะห์ความสอดคล้องกันของค่าเฉลี่ยเคลื่อนที่และแผนภูมิราคาในตลาดการตรวจสอบจะดำเนินการโดยใช้ฟังก์ชัน CheckForOpen ถ้าค่าเฉลี่ยเคลื่อนที่ตรงแถบในลักษณะที่อดีตสูงกว่าราคาเปิด แต่ต่ำกว่าราคาปิดราคาซื้อจะเป็น เปิดถ้าค่าเฉลี่ยเคลื่อนที่ตรงแถบในลักษณะที่อดีตต่ำกว่าราคาเปิด แต่สูงกว่าราคาปิดสถานะการขายจะเปิดขึ้นการบริหารจัดการช่องทางที่ใช้ในผู้เชี่ยวชาญคือ ง่ายมาก แต่มีประสิทธิภาพในการควบคุมปริมาณแต่ละตำแหน่งขึ้นอยู่กับผลการดำเนินการก่อนหน้านี้อัลกอริธึมนี้ถูกใช้โดยฟังก์ชัน LotsOptimized ขนาดล็อตพื้นฐานจะคำนวณจากความเสี่ยงที่อนุญาตสูงสุดพารามิเตอร์ MaximumRisk จะแสดงเปอร์เซ็นต์ความเสี่ยงขั้นพื้นฐานสำหรับ แต่ละรายการมักมีมูลค่าระหว่าง 0 01 1 ถึง 1 100 ตัวอย่างเช่นถ้า Free margin AccountFreeMargin มีค่าเท่ากับ 20,500 และกฎการจัดการเงินทุนกำหนดให้ใช้ความเสี่ยงของ 2 จำนวนล็อตพื้นฐานจะทำให้ 20500 0 02 1000 0 41 มันเป็น โดยปกติจะอนุญาตให้มีเศษส่วนที่มีขั้นตอนที่ 0 1 การทำธุรกรรมที่มีปริมาณการใช้งาน 0 41 จะไม่ได้รับการทำ NormalizeDouble ใช้ฟังก์ชันนี้อย่างถูกต้อง ไม่เกิน 1 ตัวหลังจากจุดนี้ส่งผลให้จำนวนพื้นฐานของ 0 4 การคำนวณล็อตล็อตพื้นฐานบนพื้นฐานของ free margin ช่วยให้เพิ่ม i นี่คือกลไกพื้นฐานที่มีการจัดการเงินทุนที่จำเป็นสำหรับการเพิ่มประสิทธิภาพในการซื้อขาย EffectiveFactor คือขอบเขตที่ขนาดของล็อตจะลดลงหลังจากการซื้อขายที่ไม่ได้ผลค่าปกติคือ 2,3 , 4,5 ถ้าการทำธุรกรรมก่อนหน้านี้เป็นประโยชน์, ไดรฟ์ข้อมูลที่ตามมาจะลดลงโดยปัจจัยของ DecreaseFactor เพื่อที่จะรอผ่านระยะเวลาไม่ได้ประโยชน์นี้เป็นปัจจัยหลักในขั้นตอนการจัดการทุนแนวคิดง่ายมากถ้าการซื้อขายจะประสบความสำเร็จเพิ่มขึ้น, ผู้เชี่ยวชาญทำางานกับข้อมูลพื้นฐานที่ทำาให้เกิดกำไรสูงสุดหลังจากทำธุรกรรมที่ไม่มีประโยชน์ครั้งแรกผู้เชี่ยวชาญจะลดความเร็วจนกว่าจะมีการทำธุรกรรมใหม่ที่เป็นบวกอัลกอริทึมจะช่วยลดความเร็วในการทำางานโดยทำาอย่างใดอย่างหนึ่งต้องระบุ DecreaseFactor 0 จำนวนเงิน ของการทำธุรกรรมที่ไม่ก่อให้เกิดรายได้ครั้งต่อ ๆ ไปจะถูกคำนวณในประวัติทางการค้าจำนวนพื้นฐานจะได้รับการพิจารณาใหม่ culated บนพื้นฐานนี้ดังนั้นอัลกอริธึมช่วยให้สามารถลดความเสี่ยงที่เกิดขึ้นได้อย่างมีนัยสำคัญอันเป็นผลมาจากชุดของขนาดล็อตที่ไม่ทำกำไรจำนวนมากถูกตรวจสอบอย่างถูกต้องสำหรับขนาดล็อตที่อนุญาตต่ำสุดเมื่อสิ้นสุดการทำงานเนื่องจากการคำนวณที่ทำไว้ก่อนหน้านี้สามารถทำให้เกิดเป็นจำนวนมาก 0.The ผู้เชี่ยวชาญมีวัตถุประสงค์หลักสำหรับการทำงานกับระยะเวลารายวันและในโหมดการทดสอบ - สำหรับการทำในราคาที่ใกล้ชิดมันจะค้าเฉพาะที่เปิดบาร์ใหม่นั่นคือเหตุผลที่โหมดของการทำแบบจำลองทุกติ๊กไม่จำเป็นต้องการทดสอบ ผลลัพธ์จะแสดงใน report. hi มีอยู่มันเป็นไปได้ที่จะลบอัตโนมัติปิด features. see นี้ scalping EA. SymbolEURUSDFXF ยูโรเทียบกับดอลลาร์สหรัฐรอบระยะเวลา 1 ชั่วโมง H1 2007 03 30 17 01 - 2011 09 30 00 59 2007 03 01 - 2011 06 20 ModelEvery ขีดวิธีการที่แม่นยำที่สุดตามช่วงเวลาที่น้อยที่สุดที่มีอยู่ทั้งหมดพารามิเตอร์ 0 0 MaximumRisk 0 02 DecreaseFactor 3 MovingPeriod 12 MovingShift 6 บาร์ใน test28117Tick modelled34632921Modelling quality99 00 ผิดพลาดของแผนภูมิที่ไม่ตรงกัน 0Initial dep osit10000 00 กำไรสุทธิ 2786 20 กำไรจากการดำเนินงานปกติ 71494 00 ขาดทุนสิ้นงวด - 68707 80 ปัจจัยปรับปรุง 1 04 ผลตอบแทนที่คาดไว้ 1 26 เบิกถอนเงิน 600 60 การเบิกใช้สูงสุด 3375 60 24 72 การเบิกเงินกู้สัมพัทธ์ 24 72 3375 60 รวมธุรกิจการค้า 2205 ตำแหน่งงานว่าง 1102 25 50 ตำแหน่งงานยาวได้รับรางวัล 1103 28 92 กำไรรวมทั้งสิ้น 600 27 21 ขาดทุนรวม 1605 72 79 การค้าที่ใหญ่ที่สุด 1155 การค้า 60loss 1006 80 การค้าที่น่าพอใจ 119 การค้าขาย 16loss - 42 81Maximumconsecutive ชนะผลกำไรในเงิน 6 353 ขาดทุนต่อเนื่อง 40 ขาดทุนในเงิน 18-650 40 จำนวนกำไรสูงสุดของผู้ชนะ 1170 00 4 ขาดทุนต่อเนื่องนับขาดทุน -1280 80 9 Averageconsecutive SymbolEURUSDFXF ยูโรเทียบกับช่วงเวลาสกุลเงินดอลลาร์สหรัฐฯ 1 ชั่วโมง H1 2007 03 30 17 01 - 2011 09 30 00 59 2007 03 01 - 2011 06 20 ModelEvery ติ๊กวิธีการที่แม่นยำที่สุดโดยอิงตามระยะเวลาที่น้อยที่สุดที่มีอยู่ทั้งหมด ParametersLots 0 1 MaximumRisk 0 01 ลดลง 1 ระยะเวลาการเคลื่อนย้าย 16 MovingShift 11 บาร์ใน test28117Ticks modelled34632921 การปรับปรุงคุณภาพ 99 00 ผิดพลาดของแผนภูมิที่ไม่ตรงกัน 0 เงินฝากประจำ 1000000 00 กำไรสุทธิรวม 424287 00 กำไรข้ามประเทศ 1015708 80 การสูญเสียจากการขาดทุน - 1439995 80 ปัจจัยด้านผลกระทบ 71 คาดว่าจะได้รับผลตอบแทน 272 50 การเบี่ยงเบนโดยสิ้นเชิง 426566 80 การเบิกใช้มากที่สุด 445606 40 43 73 การเบิกจ่ายตามสัมพันธมิตร 43 73 445606 40 รวมธุรกิจการค้า 1557 ตำแหน่งว่างเหลือ 778 21 34 ตำแหน่งยาวชนะ 779 29 40 กำไร ธุรกิจการค้าทั้งหมด 395 25 37 การค้าขาดทุนทั้งหมด 1162 74 63 การค้าที่ใหญ่ที่สุด 101270 40loss trade-36944 00 การค้าปลีกที่มีรายได้ 2571 41loss trade-1239 24Maximumconsecutive มีผลกำไรในเงิน 4 17427 00 ขาดทุนต่อเนื่องที่สูญเสียไปในเงิน 23 -2310 40 จำนวนกำไรสูงสุดที่ได้รับจากการชนะ 129294 80 3 ขาดทุนต่อเนื่องนับขาดทุน - 44613 40 4 Averageconsecutive wins1 ขาดทุนต่อเนื่อง 4.MetaTrader 4 - Indicators. Moving A, MA - ตัวบ่งชี้สำหรับ MetaTrader 4.The Moving Average Technical Indicator แสดงค่าเฉลี่ยของราคาตราสารในช่วงระยะเวลาหนึ่งเมื่อคำนวณการเคลื่อนไหว เฉลี่ยหนึ่งเฉลี่ยออกมา ราคาของอนุภาคในช่วงเวลานี้เมื่อราคามีการเปลี่ยนแปลงค่าเฉลี่ยเคลื่อนที่ของมันจะเพิ่มขึ้นหรือลดลงมีค่าเฉลี่ยเคลื่อนที่สี่แบบที่แตกต่างกัน Simple หมายถึงค่าเฉลี่ยเลขคณิต, เลขชี้กำลัง, Smoothed และ Linear Weighted Moving โดยทั่วไปสามารถคำนวณได้สำหรับชุดข้อมูลลำดับใด ๆ ได้แก่ ราคาเปิดและราคาปิดราคาสูงสุดและต่ำสุดปริมาณการซื้อขายหรือตัวชี้วัดอื่น ๆ มักเป็นกรณีที่มีการใช้ค่าเฉลี่ยเคลื่อนที่แบบขนานสิ่งเดียวที่ค่าเฉลี่ยเคลื่อนที่ของแต่ละประเภทแตกต่างกันมากคือเมื่อค่าสัมประสิทธิ์น้ำหนัก จะถูกกำหนดให้กับข้อมูลล่าสุดมีความแตกต่างกันในกรณีที่เรากำลังพูดถึงค่าเฉลี่ยเคลื่อนที่แบบง่ายๆราคาทั้งหมดของช่วงเวลาที่เป็นคำถามมีค่าเท่ากันค่าที่ได้รับการชี้แจงและเส้นค่าเฉลี่ยเชิงเส้นเป็นเส้นตรงจะให้ค่าล่าสุดกับค่าต่างๆมากที่สุด การตีราคาค่าเฉลี่ยเคลื่อนที่ของราคาคือการเปรียบเทียบการเปลี่ยนแปลงของราคากับการเคลื่อนไหวของราคาเมื่อราคาของตราสารเพิ่มขึ้นเหนือระดับเฉลี่ยเคลื่อนที่ อายุสัญญาณซื้อจะปรากฏขึ้นถ้าราคาลดลงต่ำกว่าค่าเฉลี่ยเคลื่อนที่ของสิ่งที่เรามีเป็นสัญญาณการขายระบบการซื้อขายนี้ซึ่งขึ้นอยู่กับค่าเฉลี่ยเคลื่อนที่ไม่ได้ถูกออกแบบเพื่อให้เข้าสู่ตลาดได้ในจุดต่ำสุดและ ทางออกขวาบนยอดเขาจะช่วยให้การดำเนินการตามแนวโน้มต่อไปนี้ที่จะซื้อในไม่ช้าหลังจากที่ราคาถึงด้านล่างและจะขายเร็ว ๆ นี้หลังจากที่ราคาได้ถึงจุดสูงสุดของพวกเขาอย่างรวดเร็วเฉลี่ย SMA เรียบง่ายในคำอื่น ๆ ย้ายเลขคณิต ค่าเฉลี่ยคำนวณโดยสรุปราคาของการปิดตราสารในช่วงเวลาหนึ่ง ๆ เช่น 12 ชั่วโมงค่านี้หารด้วยจำนวนช่วงเวลาดังกล่าว SMA SUM CLOSE, N N ในกรณีที่ N คือจำนวนรอบการคำนวณ . ค่าเฉลี่ยเคลื่อนที่ที่คำนวณได้ EMA ที่คำนวณได้โดยเฉลี่ยจะถูกคำนวณโดยการเพิ่มค่าเฉลี่ยเคลื่อนที่ของส่วนแบ่งของราคาปิดปัจจุบันไปเป็นค่าก่อนหน้านี้ ค่าเฉลี่ยของค่า P-percent exponential moving average จะมีลักษณะเหมือนที่ไหนเมื่อปิด I ราคาของการปิดงวดปัจจุบัน EMA i-1 การเปลี่ยนแปลงค่าเฉลี่ยเลขทศนิยมของช่วงปิดงวดก่อนหน้า P ค่าร้อยละของการใช้มูลค่าตามราคาค่าเฉลี่ยเคลื่อนที่เฉลี่ย SMMA อันดับแรก ค่าเฉลี่ยของค่าเฉลี่ยเคลื่อนที่ที่เรียบนี้คำนวณเป็นค่าเฉลี่ยเคลื่อนที่โดยเฉลี่ย SMA SUM1 SUM CLOSE, N ค่าเฉลี่ยเคลื่อนที่ที่สองและค่าเฉลี่ยที่คำนวณได้ตามสูตรนี้ SUM1 คือผลรวมของราคาปิดของ N งวด SMMA1 เป็นแบบเรียบ ค่าเฉลี่ยเคลื่อนที่ของแถบแรก SMMA i เป็นค่าเฉลี่ยเคลื่อนที่ที่ราบรื่นของแถบปัจจุบันยกเว้นค่าแรกที่ CLOSE ฉันเป็นราคาปิดปัจจุบัน N คือระยะเวลาที่ราบเรียบค่าเฉลี่ยการถ่วงน้ำหนักเฉลี่ย LWMA ในกรณีของค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนัก ข้อมูลล่าสุดมีค่ามากกว่าข้อมูลตั้งแต่เริ่มต้นข้อมูลค่าเฉลี่ยถ่วงน้ำหนักคำนวณโดยการคูณด้วยราคาต่อหนึ่งช่วงของราคาปิดที่อยู่ในชุดพิจารณาโดยใช้ค่าสัมประสิทธิ์น้ำหนักที่แน่นอน LWMA SUM Clo ในกรณีที่ SUM i, N เป็นผลรวมของค่าสัมประสิทธิ์การถ่วงน้ำหนักค่าเฉลี่ยความเป็นไปได้อาจใช้กับตัวชี้วัดซึ่งเป็นที่ที่การตีความตัวบ่งชี้ค่าเฉลี่ยเคลื่อนที่คล้ายคลึงกับการตีความค่าเฉลี่ยถ่วงน้ำหนักของค่าเฉลี่ยหาก ตัวบ่งชี้จะเพิ่มขึ้นเหนือค่าเฉลี่ยเคลื่อนที่ซึ่งหมายความว่าการเคลื่อนไหวตัวบ่งชี้ที่มีแนวโน้มจะยังคงอยู่ต่อไปหากตัวบ่งชี้ต่ำกว่าค่าเฉลี่ยเคลื่อนที่ซึ่งหมายความว่ามีแนวโน้มที่จะลดลงต่อไปนั่นคือประเภทของค่าเฉลี่ยเคลื่อนที่ที่อยู่บนแผนภูมิ ค่าเฉลี่ยเคลื่อนที่เฉลี่ย SMMA ค่าเฉลี่ยเคลื่อนที่เชิงลบ EMA. Smoothed Average Moving Average SMMA ค่าเฉลี่ยถ่วงน้ำหนักเฉลี่ย LWMA

No comments:

Post a Comment