Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Author Topic: สอบถาม Admin ครับ  (Read 15267 times)

tomkah

  • Jr. Member
  • **
  • Posts: 50
สอบถาม Admin ครับ
« on: สิงหาคม 15, 2014, 08:51:17 pm »
สอบถาม admin ครับ ไม่ทราบว่าผมต้องเขียนโค๊ดเพิ่มยังไงครับ ถึงจะให้เปิดแค่ order เดียวหากตรวจเช็คค่า RSI >70 (เปิดแค่ครั้งเดียว)จนกว่าจะรอsignal อีกครั้ง
« Last Edit: สิงหาคม 16, 2014, 12:30:28 am by tomkah »

tomkah

  • Jr. Member
  • **
  • Posts: 50
Re: สอบถาม Admin ครับ
« Reply #1 on: สิงหาคม 15, 2014, 09:47:53 pm »
สอบถาม admin ครับ ไม่ทราบว่าผมต้องเขียนโค๊ดเพิ่มยังไงครับ ถึงจะให้เปิดแค่ order เดียวหากตรวจเช็คค่า RSI >70 (เปิดแค่ครั้งเดียว)จนกว่าจะรอsignal อีกครั้ง

ขอขยายความอีกนิดนะครับ
คือถ้าเช็คว่า rsi>70 ให้เปิด Order buy แค่ครั้งเดียวแล้วรอจนกว่า rsi<30 ให้เปิด Order sell เพียงแค่ครั้งเดียวแล้วรอจนกว่า rsi มากกว่า 70 อีกครั้งวนไปอย่างนี้ครับ

ขอคุณครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: สอบถาม Admin ครับ
« Reply #2 on: สิงหาคม 15, 2014, 11:45:07 pm »
ถ้า Order เปิดแล้ว ให้เขียน เงื่อนไข ตรวจสอบ Order ล่าสุดว่าเป็น Buy หรือ sell ถ้าเป็น Buy แล้วค่า RSi ยังมากกว่า 70 ก็ไม่ให้เปิด order แต่ถ้า order ล่าสุดเป็น sell ก็ให้เปิด Order ได้   ได้ด้าน sell ก็ใช้แบบเดียวกันแต่กลัด้านกันเท่านั่นเอง

tomkah

  • Jr. Member
  • **
  • Posts: 50
Re: สอบถาม Admin ครับ
« Reply #3 on: สิงหาคม 15, 2014, 11:50:03 pm »
ไม่ทราบว่าของท่าน admin ตรวจสอบorderเป็นแบบไหนครับ

ตอนนี้ผมเขียนแบบใช้แก้ขัดไปก่อนเป็นแบบนี้ครับ
int Value=0;
if(OrdersNormallTotal()==0)
   {
      if((rsi<=30)&& (Value==0))
      {
      getlasterror=129;
         while((IsTesting() && getlasterror==129) || (!IsTesting() && (getlasterror==129 || getlasterror==138 || getlasterror==136)))
         {
         OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SetStoploss(OP_BUY,Ask,SL),SetTakeprofit(OP_BUY,Ask,TP),"KittiyutTrading",0,0,clrNONE);
         getlasterror=GetLastError();
         ShowError(getlasterror,"Opening BUY");
         Value = 1;
         RefreshRates();

else if((rsi>=70)&& (Value==1))
      {
      getlasterror=129;
         while((IsTesting() && getlasterror==129) || (!IsTesting() && (getlasterror==129 || getlasterror==138 || getlasterror==136)))
         {
         OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SetStoploss(OP_SELL,Bid,SL),SetTakeprofit(OP_SELL,Bid,TP),"KittiyutTrading",0,0,clrNONE);
         getlasterror=GetLastError();
         ShowError(getlasterror,"Opening SELL");
         Value = 0 ;
         RefreshRates();

ผมอยากได้แบบตรวจสอบอย่างท่าน Admin บอกนะครับ ไม่ทราบมีในหนังสือไหมครับ หาไม่เจอครับ
ขอบคุณมากนะครับ
« Last Edit: สิงหาคม 15, 2014, 11:52:56 pm by tomkah »

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: สอบถาม Admin ครับ
« Reply #4 on: สิงหาคม 16, 2014, 01:34:31 am »
จาก code ที่คุณใช่มันให้ผลตามที่ต้องการหรือเปล่าครับ

tomkah

  • Jr. Member
  • **
  • Posts: 50
Re: สอบถาม Admin ครับ
« Reply #5 on: สิงหาคม 16, 2014, 07:09:47 am »
ได้ครับ

tomkah

  • Jr. Member
  • **
  • Posts: 50
Re: สอบถาม Admin ครับ
« Reply #6 on: สิงหาคม 16, 2014, 02:28:07 pm »
ตอนนี้พัฒนามาอีกนิดได้จากในหนังสือ+ข้อมูลในบอร์ดนี้ หน้าตาเลยมาเป็นแบบนี้ไม่รู้ถูกตามหลักหรือเปล่า :)

 int a=OrdersHistoryTotal()-1;
      OrderSelect(a,SELECT_BY_POS,MODE_HISTORY);
      if(OrderClosePrice()==OrderStopLoss())
      {
      if(OrderType()==OP_BUY)
      {
      getlasterror=129;
         while((IsTesting() && getlasterror==129) || (!IsTesting() && (getlasterror==129 || getlasterror==138 || getlasterror==136)))
         {
         
         OrderSend(Symbol(),OP_SELL,Lots*2,Bid,3,0,SetTakeprofit(OP_SELL,Bid,TP),"KittiyutTrading",0,0,clrNONE);
         getlasterror=GetLastError();
         ShowError(getlasterror,"Opening SELL");
         Value = 0 ;
         Print("  Order Sell by Stoploss ");
         RefreshRates();
         }
      }
      else if (OrderType()==OP_SELL)
       {
      getlasterror=129;
         while((IsTesting() && getlasterror==129) || (!IsTesting() && (getlasterror==129 || getlasterror==138 || getlasterror==136)))
         {
         
         OrderSend(Symbol(),OP_BUY,Lots*2,Ask,3,0,SetTakeprofit(OP_BUY,Ask,TP),"KittiyutTrading",0,0,clrNONE);
         getlasterror=GetLastError();
         ShowError(getlasterror,"Opening BUY");
         Value = 1;
         Print(" Order Buy by Stoploss");
         RefreshRates();

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: สอบถาม Admin ครับ
« Reply #7 on: สิงหาคม 16, 2014, 06:04:19 pm »
จริงแค่ให้มันทำงานตามที่เราต้องการได้ก็พอแล้วครับ จาก code ที่เอามาโพสตัดพวกตรวจสอบ error ออกไปอีกยังได้เลยครับ