Robię wszystko jak na filmiku. Wrzucam plik do experts w bossafx i niestety go nie wykrywa. W mforex bez problemu. Ktoś coś?
Dzięki
dobra, dalem rade

Kod: Zaznacz cały
double close1 = iClose(NULL,0,1);
double close2 = iClose(NULL,0,2);
if(CountOrders(MagicNumber,OP_BUY) == 0 && close1 > ObjectGetDouble(0,"Wsp",OBJPROP_PRICE) && close2 < ObjectGetDouble(0,"Wsp",OBJPROP_PRICE))
{
OrderSend(Symbol(),OP_BUY, Lots,Ask,Slippage,Ask-Stoploss*Point,Ask+ProfitTarget*Point," buy",MagicNumber,0,Blue);
}
Kod: Zaznacz cały
int CountOrders(int MagicNumber,int type)
{
int count = 0;
int cnt;
for(cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber()!=MagicNumber || OrderType() != type || OrderSymbol() != Symbol()) continue;
count++;
}
return (count);
}
Kod: Zaznacz cały
void OnStart()
{
//--- get minimum stop level
double minstoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
Print("Minimum Stop Level=",minstoplevel," points");
double price=Ask;
//--- calculated SL and TP prices must be normalized
double stoploss=NormalizeDouble(Bid-minstoplevel*Point,Digits);
// stoploss=0;
double takeprofit=NormalizeDouble(Bid+minstoplevel*Point,Digits);
// takeprofit=0;
//--- place market order to buy 1 lot
int ticket=OrderSend(Symbol(),OP_BUY,1,price,3,stoploss,takeprofit,"My order",16384,0,clrGreen);
if(ticket<0)
{
Print("OrderSend failed with error #",GetLastError());
}
else
Print("OrderSend placed successfully");
//---
}
Zgodnie z dokumentacją:rrozak pisze:Witam,
Próbuję uruchomić najprostszy skrypt MT4 ale server zwraca błąd 4112. Opcja "Zezwalaj na automatyczny traiding" zaptaszona. Broker XTB.
Kod: Zaznacz cały
void OnStart() { //--- get minimum stop level double minstoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL); Print("Minimum Stop Level=",minstoplevel," points"); double price=Ask; //--- calculated SL and TP prices must be normalized double stoploss=NormalizeDouble(Bid-minstoplevel*Point,Digits); // stoploss=0; double takeprofit=NormalizeDouble(Bid+minstoplevel*Point,Digits); // takeprofit=0; //--- place market order to buy 1 lot int ticket=OrderSend(Symbol(),OP_BUY,1,price,3,stoploss,takeprofit,"My order",16384,0,clrGreen); if(ticket<0) { Print("OrderSend failed with error #",GetLastError()); } else Print("OrderSend placed successfully"); //--- }
Możesz wykorzystać następujący kod do sprawdzenia czasu świecy która została kliknięta:MarcinMC pisze:Hej chciałbym napisać prosty wskaźnik który by rysował linie w 50% ciała świecy po kliknięciu na świecę myszką. Tylko właśnie z tym kliknięciem mam problem, jak w mql to napisać zeby wiedzieć w co klikam ?
Kod: Zaznacz cały
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//---
if (id == CHARTEVENT_CLICK)
{
int subwindow=0;
datetime time=0;
double price=0;
ChartXYToTimePrice(ChartID(), (int)lparam, (int)dparam, subwindow, time, price);
}
}
Kod: Zaznacz cały
double price=0;
for(int i=ObjectsTotal()-1;i>=0;i--)
{
string name=ObjectName(i);
if(StringSubstr(name,0,1)=="#" && StringFind(name,"SL")>=0)
{
price=ObjectGetDouble(0,name,OBJPROP_PRICE);
}
break;
}
if(price > 0)
{
//--- dalsze instrukcje
}