Les gars, s'il vous plaît, dites-moi ce qui ne va pas avec le testeur. Au lieu des chandeliers, il montre seulement les prix d'ouverture dans le mode "Tous les ticks, la méthode la plus précise" et dans les autres modes aussi. MT4 Batter volume est également inadéquate dans le testeur
En termes simples, votre algorithme ressemble à ceci : s'il n'y a pas d'ordre, ouvrez un Achat, et à chaque tick, ouvrez une Vente.
Comment pouvez-vous modifier le code pour qu'il fonctionne sans conditions supplémentaires ?
Alert(Sborinfo(Magic)); // 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 );
Ibragim Dzhanaev: 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() ?
Vous voulez dire comme ça ? Existe-t-il d'autres options, plus simples ?
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 ?
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 ?