
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
MT4 Batter volume est également inadéquate dans le testeur
Pouvez-vous me dire pourquoi il s'ouvre à chaque tic?
{
Alert(Sborinfo(Magic));
if(Sborinfo(Magic)<=0)
{
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,0,0,NULL,0,0,Blue);
if(tiket>=0)
LastPrice=Ask;
else LastPrice=-1;
}
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
else LastPrice=-1;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
for(int i=0; i<OrdersTotal(); i++)
{
Print("колличество ордеров ",kol);
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==magic)
kol++;
}
Print("новые ордера ",kol);
return(kol);
}
Pouvez-vous me dire pourquoi il s'ouvre à chaque tic?
Parce que je teste toujours dans ce mode
{
Alert(Sborinfo(Magic));
if(Sborinfo(Magic)<=0)
{
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,0,0,NULL,0,0,Blue);
if(tiket>=0)
LastPrice=Ask;
else LastPrice=-1;
}
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
else LastPrice=-1;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
for(int i=0; i<OrdersTotal(); i++)
{
Print("колличество ордеров ",kol);
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==magic)
kol++;
}
Print("новые ордера ",kol);
return(kol);
}
Pouvez-vous me dire pourquoi il s'ouvre à chaque tic-tac?
Parce que c'est ainsi que le code est écrit.
En termes simples, votre algorithme ressemble à ceci : s'il n'y a pas d'ordres, ouvrez l'option Achat, et à chaque tick, ouvrez l'option Vente.
Parce que c'est comme ça que le code est écrit.
En termes simples, votre algorithme ressemble à ceci : s'il n'y a pas d'ordre, ouvrez un Achat, et à chaque tick, ouvrez une Vente.
// Closse(Magic);
if(Sborinfo(Magic)==0)
{
Print("количество ордеров ",Sborinfo(Magic));
MassivPrice(step);
if(OrdersTotal()<2)// без таких условий
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,slippage,0,0,NULL,0,0,Green);
if(tiket>=0)
LastPrice=Ask;
}
MassivPrice(step);
if(OrdersTotal()<2)// без таких условий
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,slippage,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
kol=0;
for(int i=0; i<OrdersTotal(); i++)
{
Print(" чему ровно кол " , kol );
if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==magic)
{
Print(" ордера после " , kol );
// kol++;
}
}
return(kol);
}
Comment modifier le code pour qu'il fonctionne sans conditions supplémentaires ?
Mais vous ne pouvez pas, si vous devez à la fois acheter et vendre et limiter leur nombre. Seulement je ne regarderais pasOrdersTotal(), et compterais combien d'achats et combien de ventes.
Et encore une fois, pourquoi avez-vous besoin de ce "if(Sborinfo(Magic)==0)" si vous utilisez ensuiteOrdersTotal() ?
Mais vous ne pouvez pas, si vous devez à la fois acheter et vendre et limiter leur nombre. Seulement je ne regarderais pasOrdersTotal(), et compterais combien d'achats et combien de ventes.
Et encore une fois, pourquoi avez-vous besoin de ce "if(Sborinfo(Magic)==0)", si vous utilisez ensuiteOrdersTotal() ?
CloseFirst(Magic);
int b=0;
int s=0;
for(int i=0; i<=OrdersTotal(); i++)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderMagicNumber()==Magic && OrderSymbol()==_Symbol )
{
if(OrderType()==OP_BUY)
b++;
if(OrderType()==OP_SELL)
s++;
}
if(b==0)
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,slippage,0,0,NULL,Magic,0,Green);
if(s==0)
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,slippage,0,0,NULL,Magic,0,Red);
}
Camarades ! J'ai une question.
Le conseiller expert ouvre des ordres en suspens à 00:00 du début de la journée sur la base des extremums de la journée précédente.
En semaine, tout fonctionne bien, mais avec l'ouverture du lundi, lesordres en attente ne sont pas placés aux extrêmes du vendredi, mais aux niveaux du jeudi pour une raison quelconque. Comment cela se fait-il ?
currtime=TimeToStr(TimeCurrent(),TIME_MINUTES);
Format=Digits();
DH=NormalizeDouble(iHigh(NULL,PERIOD_D1,1),Format) ;
DL=NormalizeDouble(iLow(NULL,PERIOD_D1,1),Format);
if (currtime==OpenTime)
{
отложки
}
Tu veux dire comme ça ? Y a-t-il d'autres options - plus simples ?
Oui, c'est à peu près ça. Combien plus simple ?
Oui, c'est à peu près ça. Comment cela pourrait-il être plus facile ?