Hi, Gurus, need your help really.
i cannot find the bug in my script, a very simple one that tries to open a buylimit or selllimit order.
Could you please check for the 'bug'? many thanks!
It keeps giving "error 3, invalid trade parameters". Not sure why.
i cannot find the bug in my script, a very simple one that tries to open a buylimit or selllimit order.
Could you please check for the 'bug'? many thanks!
It keeps giving "error 3, invalid trade parameters". Not sure why.
Inserted Code
// allow script to accept inputs from user
#property show_inputs
//user input
extern double Lots = 0.01;
extern string Dir = "1 long, 0 short.";
extern int LongShort = 0;
extern string PairSymbol = "EURUSD";
extern double EntryAt = 1.3;
extern bool isIBFXmini=false;
extern int MagicNumber = 6; // might use date.
extern string TradeComment="lPhan_Ml";
// globals
string mySymbol;
string postfix;
// used for verbose error logging
#include <stdlib.mqh>
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int init()
{
if(isIBFXmini) postfix="m";
mySymbol=PairSymbol+postfix; OpenPos();
}
int deinit()
{
}
int start()
{
}
void OpenPos()
{
int gle=0;
int ticket=0;
int loopcount=0;
while(true)
{
if (LongShort == 0)
{ ticket=OrderSend(mySymbol,OP_SELLLIMIT,Lots,NormalizeDouble(EntryAt,MarketInfo(mySymbol,MODE_DIGITS)),0,0,0,TradeComment,MagicNumber,Red);
gle=GetLastError();
}
else if (LongShort == 1)
{ ticket=OrderSend(mySymbol,OP_BUYLIMIT,Lots,NormalizeDouble(EntryAt,MarketInfo(mySymbol,MODE_DIGITS)),0,0,0,TradeComment,MagicNumber,Green);
gle=GetLastError();
}
if(gle==0)
{
Alert("Order PLACED Ticket="+ticket+" Lots="+Lots);
break;
}
else
{
Alert("-----ERROR----- placing order: Lots="+Lots+", ticket="+ticket+" Err="+gle+" "+ErrorDescription(gle));
RefreshRates();
Sleep(500);
loopcount++;
if(loopcount>10)
{
Print("---ERROR--- The Script gave up placing order");
return(gle);
}
}
}//while
}//SELLme