Script Buy 26 pair
//+------------------------------------------------------------------+
//| Open BUY ALL PAIR.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//|
http://www.metaquotes.net |
//+------------------------------------------------------------------+
// allow script to accept inputs from user
#property show_inputs
//user input
extern double Lots = 0.01;
extern int Slippage = 2;
extern int TP = 0;
extern int SL = 0;
extern bool isIBFXmini=false;
// globals
string mySymbol;
string postfix;
// trade management
double ask, bid, point;
string TradeComment=" Buy USD Quotes, Sell USD Base pair";
int MagicNumber=12345678;
// used for verbose error logging
#include <stdlib.mqh>
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int init()
{
if(isIBFXmini) postfix="m";
mySymbol="GBPUSD"+postfix; OpenPos("Buy");
mySymbol="AUDUSD"+postfix; OpenPos("Buy");
mySymbol="EURUSD"+postfix; OpenPos("Buy");
mySymbol="NZDUSD"+postfix; OpenPos("Buy");
mySymbol="GBPJPY"+postfix; OpenPos("Buy");
mySymbol="AUDJPY"+postfix; OpenPos("Buy");
mySymbol="EURJPY"+postfix; OpenPos("Buy");
mySymbol="NZDJPY"+postfix; OpenPos("Buy");
mySymbol="CADJPY"+postfix; OpenPos("Buy");
mySymbol="CHFJPY"+postfix; OpenPos("Buy");
mySymbol="USDJPY"+postfix; OpenPos("Buy");
mySymbol="GBPCHF"+postfix; OpenPos("Buy");
mySymbol="AUDCHF"+postfix; OpenPos("Buy");
mySymbol="EURCHF"+postfix; OpenPos("Buy");
mySymbol="USDCHF"+postfix; OpenPos("Buy");
mySymbol="NZDCHF"+postfix; OpenPos("Buy");
mySymbol="GBPCAD"+postfix; OpenPos("Buy");
mySymbol="AUDCAD"+postfix; OpenPos("Buy");
mySymbol="EURCAD"+postfix; OpenPos("Buy");
mySymbol="USDCAD"+postfix; OpenPos("Buy");
mySymbol="GBPNZD"+postfix; OpenPos("Buy");
mySymbol="AUDNZD"+postfix; OpenPos("Buy");
mySymbol="EURNZD"+postfix; OpenPos("Buy");
mySymbol="EURAUD"+postfix; OpenPos("Buy");
mySymbol="EURGBP"+postfix; OpenPos("Buy");
mySymbol="GBPAUD"+postfix; OpenPos("Buy");
}
int start() {}
//ENTRY LONG (buy, Ask)
void OpenPos(string Trade)
{
int gle=0;
int ticket=0;
int loopcount;
loopcount=0;
while(true)
{
bid=MarketInfo(mySymbol,MODE_BID);
ask=MarketInfo(mySymbol,MODE_ASK);
point=MarketInfo(mySymbol,MODE_POINT);
double TPBuy=0;
double SLBuy=0;
double TPSell=0;
double SLsell=0;
if(TP>0){TPBuy=ask+TP*point;TPSell=bid-TP*point;}
if(SL>0){SLBuy=ask-SL*point;SLsell=bid+SL*point;}
if (Trade=="Buy") ticket=OrderSend(mySymbol,OP_BUY,Lots,ask,Slippage ,SLBuy,TPBuy,TradeComment,MagicNumber ,White);
if (Trade=="Sell") ticket=OrderSend(mySymbol,OP_SELL,Lots,bid,Slippage,SLsell,TPSell,TradeComment,MagicNumber,Red);
gle=GetLastError();
if(gle==0)
{
if (Trade=="Buy") Print("BUY PLACED Ticket="+ticket+" Ask="+ask+" Lots="+Lots);
if (Trade=="Sell") Print("SELL PLACED Ticket="+ticket+" Bid="+bid+" Lots="+Lots);
break;
}
else
{
if (Trade=="Buy") Print("-----ERROR----- Placing BUY order: Lots="+Lots+" SL="+SL+" TP="+TP+" Bid="+bid+" Ask="+ask+" ticket="+ticket+" Err="+gle+" "+ErrorDescription(gle));
if (Trade=="Sell") Print("-----ERROR----- placing SELL order: Lots="+Lots+" SL="+SL+" TP="+TP+" Bid="+bid+" Ask="+ask+" ticket="+ticket+" Err="+gle+" "+ErrorDescription(gle));
RefreshRates();
Sleep(500);
// give up after 10 tries (~5 seconds)
loopcount++;
if(loopcount>10)
{
if (Trade=="Buy") Print("-----ERROR----- Giving up on placing BUY order");
if (Trade=="Sell") Print("-----ERROR----- Giving up on placing SELL order");
return(gle);
}
}
}
}