รบกวนนิดนึงครับ....ช่วยหน่อยครับ

  • 3 replies
  • 1258 views

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

*

lightnow

รบกวนนิดนึงครับ....ช่วยหน่อยครับ

« เมื่อ: 30, มกราคม 2019, 01:00:04 PM »
ขอคำแนะนำหน่อยครับ พอดีทำ PipStep ที่ 500 แล้ว order จะเปิด
- อยากได้ เมื่อเปิดครั้งต่อไปให้ Multi_PipStep *1.5เท่า ไปเรื่อยๆ ต้องเขียนยังไงหรอครับ...งมอยู่นานแล้วครับ ผมลองเอาโค๊ดมาแก้เองครับ

void OnTick()
  {
  ob();
//------------------
  if(AllProfit_Buy()+AllProfit_Sell() >= closeallprofit_port)
{
double all_p = AllProfit_Buy()+AllProfit_Sell();
Print("Close All Profit (all orders) : "+DoubleToStr(all_p,2));
Close_Buy();
Close_Sell();
}
//----
 
//---
   if(Count_Trade_by_side(OP_BUY)+Count_Trade_by_side(OP_SELL)<1)
   {
   if(Trade_direction == OP_BUY){OpenBuy(Lot);}
   if(Trade_direction == OP_SELL){OpenSell(Lot);}
   }
//--------------------
double spread_ = MarketInfo(NULL,MODE_SPREAD);
   if(Count_Trade_by_side(OP_SELL)<1 && check_pipBuy()-spread_>=0 && Count_Trade_by_side(OP_BUY) >0)
   {
   if(Count_Trade_by_side(OP_SELL) < maxorder){OpenSell(Lot);}
   }
   if(Count_Trade_by_side(OP_BUY)<1 && check_pipSell()-spread_ >=0 && Count_Trade_by_side(OP_SELL) >0)
   {
   if(Count_Trade_by_side(OP_BUY) < maxorder){OpenBuy(Lot);}
   }   
//--------------------
double spread = MarketInfo(NULL,MODE_SPREAD)*digit;
for(int i=OrdersTotal();i>=0;i--)
  {
      bool chk  = OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
       if(OrderMagicNumber() == MagicNumber)
       if(OrderSymbol()==Symbol())
      {
      double opprice = OrderOpenPrice();
      int tick = OrderTicket();
      double _lot = OrderLots();
      int kkt = StrToInteger(OrderComment());
     
        if(OrderType()==OP_BUY )
        {
         if((Bid - (opprice-spread)) <= (-pipstep*digit))
         if(chk_ticket(tick) && Count_Trade_by_side(OP_BUY) < maxorder )
         
     
         {
         double lot_buy = NormalizeDouble(_lot+Lot_multiply,2);
         if(lot_buy > MaxLot){lot_buy = NormalizeDouble(_lot+Multi_Maxlot,2);}
            ticket = OrderSend(Symbol(),OP_BUY,lot_buy,Ask,3,0,0,IntegerToString(tick),MagicNumber,0,clrGreen);

         }
        }
        //----
        if(OrderType()==OP_SELL && Count_Trade_by_side(OP_SELL) < maxorder )
        {
        if((opprice-spread) - Ask <=  (-pipstep*digit))
        if(chk_ticket(tick))
       
         {
         double lot_sell = NormalizeDouble(_lot+Lot_multiply,2);
         if(lot_sell > MaxLot){lot_sell = NormalizeDouble(_lot+Multi_Maxlot,2);}
          ticket = OrderSend(Symbol(),OP_SELL,lot_sell,Bid,3,0,0,IntegerToString(tick),MagicNumber,0,clrRed);
         }
        }
      }
  }

Share Topic.


*

ออฟไลน์ iRuler

  • *
  • 1,269
  • 40

Re: รบกวนนิดนึงครับ....ช่วยหน่อยครับ

« ตอบกลับ #1 เมื่อ: 30, มกราคม 2019, 02:14:25 PM »
code compile ไม่ผ่านครับ และไม่เข้าใจคำถามนะครับ (TH)**

*

lightnow

Re: รบกวนนิดนึงครับ....ช่วยหน่อยครับ

« ตอบกลับ #2 เมื่อ: 30, มกราคม 2019, 03:27:18 PM »
code compile ไม่ผ่านครับ และไม่เข้าใจคำถามนะครับ (TH)**
เมื่อเปิด Buy 0.01 จากราคาเปิด แล้วราคาลงมาที่ 500 pip จะทำการเปิด Buy 0.01 และถ้าลงมาอีก 500 pip ให้ *1.5 เข้าไป ถึงจะเปิด Buy 0.01 อีกทีนะครับ
input int pipstep = 500
input double Multi_pipstep = 1.5

*** มันต้องเพิ่มโค็ดอะไรเข้าไปหรอครับ *****

-- ผมไม่ได้ส่งให้ทั้งหมดครับแต่คิดว่า น่าจะแก้ประมาณแถวๆนี้ครับ
« แก้ไขครั้งสุดท้าย: 30, มกราคม 2019, 03:29:44 PM โดย lightnow »

*

isuccess

Re: รบกวนนิดนึงครับ....ช่วยหน่อยครับ

« ตอบกลับ #3 เมื่อ: 07, กุมภาพันธ์ 2019, 03:31:05 PM »
void getMoreOrder() {
   if (chkTotalSymbol(OP_BUY) > 0 && PointStep > 0 && chkTotalSymbol(OP_BUYSTOP)==0 && chkTotalSymbol(OP_BUY) < MaxOrder) {if (Ask < getLastPrice(OP_BUY)-Point*PointStep) {OrderBuyStop();}}
   if (chkTotalSymbol(OP_SELL) > 0 && PointStep > 0 && chkTotalSymbol(OP_SELLSTOP)==0 && chkTotalSymbol(OP_SELL) < MaxOrder) {if (Bid > getLastPrice(OP_SELL)+Point*PointStep) {OrderSellStop();}}}

เพิ่มตัวเช็ค ราคาล่าสุดที่ออกไม้ไป

double getLastPrice(int t) {
   double countChk=0;
   int chkFirst = 0;
   for(int x=OrdersTotal()-1;x>=0;x--){
      if(OrderSelect(x,SELECT_BY_POS)==true) {if(OrderSymbol()==Symbol()) { if (OrderType() == t) {if (chkFirst == 0) {countChk = OrderOpenPrice(); chkFirst++;}}}}
   }return(countChk);}

Tags: