traderider forex ไทย

รบกวนถาม ผู้รู้ ครับ

  • 7 replies
  • 823 views

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

*

ออฟไลน์ aeiou

  • *
  • 11
  • 0

รบกวนถาม ผู้รู้ ครับ

« เมื่อ: 18, กุมภาพันธ์ 2019, 10:03:16 AM »
void OnTick()
  {
   
   total = OrdersTotal();
   
   Higher6 = High[iHighest(NULL,0,MODE_HIGH,6,1)];
   Lower6 = Low[iLowest(NULL,0,MODE_LOW,6,1)];
   Higher12 = High[iHighest(NULL,0,MODE_HIGH,12,1)];
   Lower12 = Low[iLowest(NULL,0,MODE_LOW,12,1)];
   Higher18 = High[iHighest(NULL,0,MODE_HIGH,18,1)];
   Lower18 = Low[iLowest(NULL,0,MODE_LOW,18,1)];
   Higher24 = High[iHighest(NULL,0,MODE_HIGH,13,12)];
   Lower24 = Low[iLowest(NULL,0,MODE_LOW,13,12)];
   Higher48 = High[iHighest(NULL,0,MODE_HIGH,24,24)];
   Lower48 = Low[iLowest(NULL,0,MODE_LOW,24,24)];
   time1_up = iTime(Symbol(),0,iHighest(NULL,0,MODE_HIGH,24,24));
   time2_up = iTime(Symbol(),0,iHighest(NULL,0,MODE_HIGH,13,12));
   time3_up = iTime(Symbol(),0,iHighest(NULL,0,MODE_HIGH,12,1));
   time1_down = iTime(Symbol(),0,iLowest(NULL,0,MODE_LOW,24,24));
   time2_down = iTime(Symbol(),0,iLowest(NULL,0,MODE_LOW,13,12));
   time3_down = iTime(Symbol(),0,iLowest(NULL,0,MODE_LOW,12,1));
   
   if ( bar == Bars)
   {
     ObjectDelete("High"); ObjectDelete("Low");
     ObjectCreate(chart_ID,"High",OBJ_TREND,0,time1_up,Higher48,time3_up,Higher12);
     ObjectCreate(chart_ID,"Low",OBJ_TREND,0,time1_down,Lower48,time3_down,Lower12);
   }
   bar = Bars ;

  }
อันนี้คือ โค๊ดที่ผมใช้ สร้างเส้น แนวรับ แนวต้าน ครับ อยากรู้ว่า ต้องใช้ คำสั่งอะไร ถึงจะ ตรวจสอบได้ว่า  Close[1] มันชน หรือ เลย เส้น High Low  ที่สร้าง ครับ

Share Topic.

Follow Me.


traderider forex ไทย
traderider forex ไทย
traderider forex ไทย
*

ออนไลน์ admin

  • *
  • 60,780
  • 2585

Re: รบกวนถาม ผู้รู้ ครับ

« ตอบกลับ #1 เมื่อ: 18, กุมภาพันธ์ 2019, 10:38:29 AM »
เดี๋ยว Programmer เรา จะมาตอบให้ นะครับ
 (TH)**
"เอาชนะใจตัวเองให้ได้ ก่อนที่จะไปเอาชนะตลาด"

"สนับสนุนบอร์ดง่ายๆด้วยการเปิด ID Trade forex ผ่าน Link ของบอร์ด ขอบคุณครับ"

*

ออฟไลน์ iRuler

  • *
  • 1,221
  • 39

Re: รบกวนถาม ผู้รู้ ครับ

« ตอบกลับ #2 เมื่อ: 18, กุมภาพันธ์ 2019, 12:31:01 PM »
ใช้ ObjectGet() ดึงราคาของเส้นออกมาครับ โดยส่ง parameter index เป็น OBJPROP_PRICE1

https://docs.mql4.com/objects/objectget
https://docs.mql4.com/constants/objectconstants/enum_object_property

เช่น

double res_line = ObjectGet("High",OBJPROP_PRICE1);

*

ออฟไลน์ aeiou

  • *
  • 11
  • 0

Re: รบกวนถาม ผู้รู้ ครับ

« ตอบกลับ #3 เมื่อ: 18, กุมภาพันธ์ 2019, 05:42:49 PM »
ขอบคุณ ครับ
ว่างแล้ว จะ ลองเขียน แล้วจะมา อัพเดทให้ชม นะครับ

Re: รบกวนถาม ผู้รู้ ครับ

« ตอบกลับ #4 เมื่อ: 20, กุมภาพันธ์ 2019, 09:47:03 AM »
โค๊ดที่พี่ใช้ก็ไม่มีปัญหาน่ะเท่าที่ดูอ่ะครับ

*

ออฟไลน์ aeiou

  • *
  • 11
  • 0

Re: รบกวนถาม ผู้รู้ ครับ

« ตอบกลับ #5 เมื่อ: 20, กุมภาพันธ์ 2019, 08:01:02 PM »
ขอถามเพิ่มเติม นะ ครับ
1 ถ้าเกิดว่า พอราคามาชนเส้นแล้วกลับตัว ผมซื้อไป 1 ไม้ แล้ว พอเกิดแท่งต่อมา ผม อยากให้ เข้าออเดอร์อีก 1 ไม้ในทางเดียวกัน ก็ ใช้โค๊ด ticket = OrderSend(Symbol(),OP_BUY,Lot,Ask,5,Bid-(StopLoss),Bid+(TakeProfit*16),"BUY Order",MagicNumber,0,clrGreen); อีกทีใช้มั้ย ครับ
2 ถ้า มี ออเดอร์ มากกว่า1 ผม อยากให้มันขยับ [size=78%]StopLoss ขึ้นมา 50 pip ทุกๆที่ ราคา เปลี่ยนไป 100 pip ของแต่ ละออเดอร์ ต้องทำไง ครับ[/size]
[size=78%]รบกวนอีกแล้ว[/size]
[size=78%]ขอบคุณ ครับ[/size]

*

ออฟไลน์ iRuler

  • *
  • 1,221
  • 39

Re: รบกวนถาม ผู้รู้ ครับ

« ตอบกลับ #6 เมื่อ: 20, กุมภาพันธ์ 2019, 08:39:52 PM »
1) ใช่ครับ
2) Trailling Stop ครับ
เอา ราคา ปัจจุบัน ลบกันกับ ราคาเปิดออร์เดอร์ ถ้าผลต่าง = 100pip ก็ส่งคำสั่ง OrderModify ไปแก้ SL ของออร์เดอร์นั้นๆ SL=SL +/- 50pip
มีออร์เดอร์มากกว่า 1 ก็วน loop ไปครับ  (TH)**

*

ออฟไลน์ aeiou

  • *
  • 11
  • 0

Re: รบกวนถาม ผู้รู้ ครับ

« ตอบกลับ #7 เมื่อ: 20, กุมภาพันธ์ 2019, 11:32:13 PM »

for(int i=0;i<total;i++)
      {
         Ans = OrderSelect( i,SELECT_BY_POS,MODE_TRADES) ;
         if( OrderType() == 0 )
         {
            if(Bid-OrderOpenPrice() > TakeProfit)
            {
                 Ans2 = OrderModify(OrderTicket(),OrderOpenPrice(),Bid-StopLoss,OrderTakeProfit(),0,clrNONE);
            }
         }
         else if( OrderType() == 1 )
         {
            if(OrderOpenPrice()-Ask > TakeProfit)
            {
                 Ans2 = OrderModify(OrderTicket(),OrderOpenPrice(),Ask+StopLoss,OrderTakeProfit(),0,clrNONE);
            }
         }
         
      }
ผม เขียนออกมาประมาณนี้ แต่ มันเกิดปัญหา คือ พอมันถึง 100 pip แล้ว มันขยับเส้ร SL ตลอดเลย ขยับตามราคา Bid เลยครับ
สมมุติ  [size=78%]OrderOpenPrice() = 1.13636  อยากให้มันขยับ SL ที่ราคา 1.13736 แล้วถ้าราคายังไปต่อให้ปรับที่ 1.3836 ครับ [/size][/size][size=78%]ต้องแก้ยังไง ครับ [/size]

Tags:
 

เครื่องมือเทรด Forex

ข่าว Forex กราฟ Forex EURUSD GBPUSD GBPJPY ตารางข่าว Forex

เครื่องมือเทรดทองคำ

ราคาทอง วันนี้ ราคาทอง ย้อนหลัง SPDR ล่าสุด กราฟราคาทองคำ วิเคราะห์ ราคาทอง ข่าว ราคาทองคำ ข่าว ราคาน้ำมัน

โบรคเกอร์ Forex

XM Exness FBS Nordfx Pepperstone Land-FX Admiral Markets

Tickmill