สอบถามการเปิดออร์เดอร์หลายคู่เงิน ในหน้าต่างเดียว

  • 8 replies
  • 1163 views

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

*

ออฟไลน์ gaothun

  • **
  • 105
  • 0
ช่วยชื้อแนะให้หน่อยครับผมต้องการฝึกเขียนอีเอเทรดหลายคู่เงิน แต่ชี้เป้าไปแต่ละคู่เงินไม่ถูกครับ ไม่ทราบว่าต้องวนลูปอย่างไรบ้างครับ

เบื้องต้นให้มัน print ค่าราคาเปิดของวันนั้น ในแต่ละคู่เงินออกมาก่อนก็พอครับ เดี๋ยวผมค่อยต่อยอดเองครับ (Priceline คือ ราคาเปิดของแท่งเทียน Day)

 (TH)** (TH)** (TH)**

#property copyright "Copyright ฉ 2005, Alejandro Galindo"
#property link      "http://elCactus.com"
int      Magic = 0;
int      cnt=0;
int      slippage=0;
int      mode=0, myOrderType=0;
double   BuyPrice=0, SellPrice=0;
double   sl=0, tp=0;
double   mylotsi;
bool     ContinueOpening=True;
int      ticket, result, ticketS;
bool     tic, res;
double   profitS, DD;
double   ProfitToday, ProfitThisWeek;
double   EquityL=9999999;
double   netprofit = 0;

int      OpenOrders[30];
int      CountB[30], CountS[30];
int      OrderBuyStop[30], OrderSellStop[30];
double   Profit[30];
double   LastLotsBuyStop[30];
double   LastLotsSellStop[30];
double   LastPriceBuyStop[30];
double   LastPriceSellStop[30];
double   PriceLine[30], OpenDay[30];
double   SwapLong[30], SwapShort[30];
double   Spread[30];
string   Currency_;
string   Suffix;
string   SymbolCur_;
string   Currency[30]=
  {
   "GOLD","GBPJPY","AUDJPY","EURJPY","USDJPY","CHFJPY","NZDJPY","CADJPY","GBPUSD",
   "GBPNZD","GBPCHF","GBPAUD","GBPCAD","EURUSD","EURAUD","EURNZD","EURCAD","EURCHF","EURGBP",
   "AUDUSD","AUDCAD","AUDNZD","AUDCHF","USDCHF","USDCAD","CADCHF","NZDUSD","NZDCHF","NZDCAD","BTCUSD",
  };
bool Trade_Currency[30]; 

//Macd_Valuer_Upper_Change-Macd_Valuer_Lower_Change
 string ______Currency_Settings________="------------Currency Settings------------";
  bool _BTCUSD_ = False;
  bool _XAUUSD_ = False;
  bool _GBPJPY_ = False;
  bool _AUDJPY_ = False;
  bool _EURJPY_ = False;
  bool _USDJPY_ = False;
  bool _CHFJPY_ = False;
 bool _NZDJPY_ = False;
  bool _CADJPY_ = False;
 bool _GBPUSD_ = True;
  bool _GBPNZD_ = False;
  bool _GBPCHF_ = False;
  bool _GBPAUD_ = False;
  bool _GBPCAD_ = False;
  bool _EURUSD_ = False;
  bool _EURAUD_ = False;
  bool _EURNZD_ = False;
  bool _EURCAD_ = False;
  bool _EURCHF_ = False;
  bool _EURGBP_ = False;
  bool _AUDUSD_ = False;
  bool _AUDCAD_ = False;
  bool _AUDNZD_ = False;
  bool _AUDCHF_ = False;
  bool _USDCHF_ = False;
  bool _USDCAD_ = False;
  bool _CADCHF_ = False;
  bool _NZDUSD_ = False;
  bool _NZDCHF_ = False;
  bool _NZDCAD_ = False;

//+-----------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
//-------------------------------------------------------------------------------
      Trade_Currency[0] = _BTCUSD_ ;
      Trade_Currency[1] = _XAUUSD_ ;
      Trade_Currency[2] = _GBPJPY_ ;
      Trade_Currency[3] = _AUDJPY_ ;
      Trade_Currency[4] = _EURJPY_ ;
      Trade_Currency[5] = _USDJPY_ ;
      Trade_Currency[6] = _CHFJPY_ ;
      Trade_Currency[7] = _NZDJPY_ ;
      Trade_Currency[8] = _CADJPY_ ;
      Trade_Currency[9] = _GBPUSD_ ;
      Trade_Currency[10] = _GBPNZD_ ;
      Trade_Currency[11] = _GBPCHF_ ;
      Trade_Currency[12] = _GBPAUD_ ;
      Trade_Currency[13] = _GBPCAD_ ;
      Trade_Currency[14] = _EURUSD_ ;
      Trade_Currency[15] = _EURAUD_ ;
      Trade_Currency[16] = _EURNZD_ ;
      Trade_Currency[17] = _EURCAD_ ;
      Trade_Currency[18] = _EURCHF_ ;
      Trade_Currency[19] = _EURGBP_ ;
      Trade_Currency[20] = _AUDUSD_ ;
      Trade_Currency[21] = _AUDCAD_ ;
      Trade_Currency[22] = _AUDNZD_ ;
      Trade_Currency[23] = _AUDCHF_ ;
      Trade_Currency[24] = _USDCHF_ ;
      Trade_Currency[25] = _USDCAD_ ;
      Trade_Currency[26] = _CADCHF_ ;
      Trade_Currency[27] = _NZDUSD_ ;
      Trade_Currency[28] = _NZDCHF_ ;
      Trade_Currency[29] = _NZDCAD_ ;

//-------------------------------------------------------------------------------
 
   SymbolCur_=ChartSymbol();
     
   if(StringLen(Symbol())>6)
      {
         Suffix = StringSubstr(Symbol(),6); 
      } 
      else{Suffix="";}
   for(cnt=0;cnt<ArraySize(Currency);cnt++)
   {
      OpenOrders[cnt]         = 0;
      Profit[cnt]             = 0;
      LastPriceBuyStop[cnt]   = 0;
      OrderBuyStop[cnt]       = 0;
      LastLotsBuyStop[cnt]    = 0;
      LastPriceBuyStop[cnt]   = 0;
      LastLotsSellStop[cnt]   = 0;
      OrderSellStop[cnt]      = 0;
      LastPriceSellStop[cnt]  = 0;
      CountB[cnt]             = 0;
      CountS[cnt]             = 0;
   }
   for(cnt=0;cnt<ArraySize(Currency);cnt++)
   {
      Currency_=Currency[cnt]+Suffix;
      for(int k=0;k<OrdersTotal();k++)
        {
         result = OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()==Currency_ && OrderMagicNumber()==Magic)
         {
              OpenOrders[cnt]++;
              Profit[cnt] = Profit[cnt]+OrderProfit()+OrderSwap()+OrderCommission();
              if (OrderType()==OP_SELL)
              {
                  CountS[cnt]++;
              }
              if (OrderType()==OP_BUY)
              {
                  CountB[cnt]++;
              }
              if(OrderType() == OP_BUYSTOP) 
              {
                  LastPriceBuyStop[cnt]  = OrderOpenPrice();
                  LastLotsBuyStop[cnt]   = OrderLots();   
                  OrderBuyStop[cnt]++;
              }
              if(OrderType() == OP_SELLSTOP)
              {
                  LastPriceSellStop[cnt] = OrderOpenPrice();
                  LastLotsSellStop[cnt]  = OrderLots();   
                  OrderSellStop[cnt]++;
              }           
         }
        }
   }
   
   netprofit = 0;
   datetime starttime = iTime(Symbol(), PERIOD_W1, 0);
   //for(int i=OrdersHistoryTotal()-1;i>=0;i--)
   for(cnt=0; cnt<OrdersHistoryTotal(); cnt++)
   {
         result = OrderSelect(cnt,SELECT_BY_POS, MODE_HISTORY);
         if(OrderCloseTime() >= starttime && OrderMagicNumber()==Magic )
         {
               netprofit += OrderProfit();
         }
   }


//Comment("  ProfitThisWeek : ",netprofit," $");
//-----------------------------------------------------------------
   for(cnt=0;cnt<ArraySize(Trade_Currency);cnt++)
   {
         PriceLine[cnt]   = NormalizeDouble(iOpen(NULL,1440,0),Digit);
         Spread[cnt]      = MarketInfo(Symbol(), MODE_SPREAD);
         SwapLong[cnt]    = MarketInfo(Symbol(),MODE_SWAPLONG);
         SwapShort[cnt]   = MarketInfo(Symbol(),MODE_SWAPSHORT);
         if(DayOfWeek()==1){ Magic = MagicNumber+1;}// ContinueOpening = True;}
         if(DayOfWeek()==2){ Magic = MagicNumber+2;}
         if(DayOfWeek()==3){ Magic = MagicNumber+3;}
         if(DayOfWeek()==4){ Magic = MagicNumber+4;}
         if(DayOfWeek()==5){ Magic = MagicNumber+5;}
         if(OpenDay[cnt] != PriceLine[cnt]) {ContinueOpening = True;}
         Print("Price line : ",PriceLine[cnt]);
   }
   return(0);
  }

Share Topic.


traderider forex ไทย
*

ออฟไลน์ forcebewithyou

  • ****
  • 2,416
  • 79
  • Green PIPs Be With You

ลองใช้  iOpen เรียกดูสิครับ  ใส่เพิ่มเข้าไปตรงที่มันลูปปริ้น PriceLine ออกมาครับ

iOpen([cnt],PERIOD_D1,0),", ",

*

ออฟไลน์ gaothun

  • **
  • 105
  • 0

ลองใช้  iOpen เรียกดูสิครับ  ใส่เพิ่มเข้าไปตรงที่มันลูปปริ้น PriceLine ออกมาครับ

iOpen([cnt],PERIOD_D1,0),", ",

ไม่ได้ครับ

*

ออฟไลน์ forcebewithyou

  • ****
  • 2,416
  • 79
  • Green PIPs Be With You

code ไม่ครบนะครับ ผมรันไม่ได้

จริงๆ มันก็มี iOpen อยู่แล้ว

ใส่ค่าวัแปรไปเรียกคู่เงินผิดหรือเปล่าครับ

เอาไปใส่ตรง NULL  เพราะ NULL คือคู่เงินที่เอาอีเอไปใส่ตัวเดียว


PriceLine[cnt]   = NormalizeDouble(iOpen(Currency[cnt],1440,0), Digits);


*

ออฟไลน์ gaothun

  • **
  • 105
  • 0

code ไม่ครบนะครับ ผมรันไม่ได้

จริงๆ มันก็มี iOpen อยู่แล้ว

ใส่ค่าวัแปรไปเรียกคู่เงินผิดหรือเปล่าครับ

เอาไปใส่ตรง NULL  เพราะ NULL คือคู่เงินที่เอาอีเอไปใส่ตัวเดียว


PriceLine[cnt]   = NormalizeDouble(iOpen(Currency[cnt],1440,0), Digits);

รบกวนด้วยครับ ผมแนบไฟล์มาแล้วครับ ตอนนี้เขียนเพิ่มได้แล้วครับ แต่ยังไม่ออกออร์เดอร์ buy stop sell stop ของแต่ละคู่เงินให้ครับ

for(int i =0; i < ArraySize(CurrencyPairs); i++)
  {

      Print(NormalizeDouble(iOpen(CurrencyPairs,Period(),i),Digits));
  }

บอร์ดไม่สามารถแสดง CurrencyPairs[ตัว i ] ได้ เสียใจด้วยครับ
« แก้ไขครั้งสุดท้าย: 28, ธันวาคม 2019, 04:43:17 PM โดย phoenicis »


*

ออฟไลน์ iRuler

  • *
  • 1,254
  • 39
for(int i =0; i < ArraySize(CurrencyPairs); i++)
  {

      Print(NormalizeDouble(iOpen(CurrencyPairs,Period(),i),Digits));
  }

บอร์ดไม่สามารถแสดง CurrencyPairs[ตัว i ] ได้ เสียใจด้วยครับ

ใส่ใน tag code สิครับ

โค๊ด
for(int i =0; i < ArraySize(CurrencyPairs[i]); i++)
  {

      Print(NormalizeDouble(iOpen(CurrencyPairs[i],Period(),i),Digits));
  }

for(int i =0; i < ArraySize(CurrencyPairs); i++)
  {

      Print(NormalizeDouble(iOpen(CurrencyPairs,Period(),i),Digits));
  }

บอร์ดไม่สามารถแสดง CurrencyPairs[ตัว i ] ได้ เสียใจด้วยครับ

ใส่ใน tag code สิครับ

โค๊ด
for(int i =0; i < ArraySize(CurrencyPairs[i]); i++)
  {

      Print(NormalizeDouble(iOpen(CurrencyPairs[i],Period(),i),Digits));
  }

ขอโทษครับ พึ่งสมัครมาเล่นครั้งแรก เล่นไม่เป็น
ตอนตอบ topic มันโล่งๆ ไม่มีตัวช่วยอ่ะครับ
ไม่ลองเพิ่ม html rtf ดูอ่ะครับ


*

ออฟไลน์ forcebewithyou

  • ****
  • 2,416
  • 79
  • Green PIPs Be With You


ขอโทษครับ พึ่งสมัครมาเล่นครั้งแรก เล่นไม่เป็น
ตอนตอบ topic มันโล่งๆ ไม่มีตัวช่วยอ่ะครับ
ไม่ลองเพิ่ม html rtf ดูอ่ะครับ

ในระบบเว็บบอร์ด เกือบทุกยี่ห้อ ทุกรุ่น มักจะมี tag สำหรับแสดง code เขียนโปรแกรมโดยเฉพาะครับ %5BCODE%5D%5B%2FCODE%5D   อะไรประมาณนี้เอาไว้ให้สามารถใช้โพส code เขียนโปรแกรมโดยเฉพาะได้ครับ
html rtf  มันเอาไว้ใช้กับ text แบบ doc ที่มีฟอนต์และวางแบบช่องไฟขนาดต่างกัน น่าจะไม่เหมาะสำหรับโชว code ครับ

เกือบทุกที่ใช้ code ครบเหมือนกันหมดครับ

Tags:
 

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

ข่าว Forex กราฟ Forex EURUSD GBPUSD GBPJPY ตารางข่าว Forex ร่วมงานกับเรา

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

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

โบรคเกอร์ Forex

XM Exness FBS Nordfx Land-FX Admiral Markets