[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 213

 
Sergey_Rogozin:

J'ai déjà compris. Je l'ai juste regardé inattentivement au début.

Je ne vois pas l'erreur.

Je me demande alors pourquoi les commandes ne sont pas supprimées ? Je peux poster le code de l'ensemble de l'EA, mais cela aurait-il un sens ?
 
dzhini:
Je me demande alors pourquoi les commandes ne sont pas supprimées ? Je peux présenter le code de l'ensemble de l'EA, mais cela aurait-il un sens ?

Essayez simplement d'écrire vos conditions au départ. À mon avis, vous n'avez pas besoin de la boucle for() ci-dessus au début.


      if(CalculateCurrentOrders(Symbol())>0) {Alert(CalculateCurrentOrders(Symbol()));ClosePendingOrder(OP_SELLLIMIT);} // (1) 
      if(CalculateCurrentOrders(Symbol())<0) {Alert(CalculateCurrentOrders(Symbol()));ClosePendingOrder(OP_BUYLIMIT);} //(2) 
      if(TimeCurrent() - OrderOpenTime()>=HowManyHours*60*60) {ClosePendingOrder(OP_BUYLIMIT);ClosePendingOrder(OP_SELLLIMIT);} //(3

Il suffit de les fixer dès le départ.

 

Hehehe... C'est exactement ce que ce n'est pas. Alors comment passerait-il les commandes sans cycle ? Comme nous partons du principe qu'il peut y avoir un grand nombre d'ordres et que nous voulons éviter d'utiliser des symboles magiques comme balises individuelles, les principales balises sont le symbole monétaire et le type d'ordre. En principe, il fonctionne avec ces derniers, mais nous avons découvert par hasard qu'il ne fonctionnait pas avec la combinaison ci-dessus. Je ne comprends pas où se trouve l'erreur. Et si je n'arrive pas à comprendre, je vais voir les vrais experts.

Si vous êtes vraiment intéressé, je peux poster le code du hibou... Voyons cela... ce sera utile.

 
dzhini:

Hehehe... C'est exactement ce que ce n'est pas. Alors comment passerait-il les commandes sans cycle ? Comme nous partons du principe qu'il peut y avoir un grand nombre d'ordres et que nous voulons éviter d'utiliser des symboles magiques comme balises individuelles, les principales balises sont le symbole monétaire et le type d'ordre. En fait, il fonctionne avec ces derniers, mais nous avons découvert par hasard qu'il ne fonctionnait pas avec la combinaison ci-dessus. Je ne comprends pas où se trouve l'erreur. Et si je n'arrive pas à comprendre, je vais voir les vrais experts.

Si vous êtes vraiment intéressé, je peux poster le code du hibou... Voyons cela... ...ça sera utile.

Je suis trop paresseux pour le vérifier maintenant.

Vous avez une boucle avec une sélection par type d'opération et par symbole défini dans la fonction,

et, au départ, vous ne prescrivez que les conditions à la réalisation desquelles l'action dont vous avez besoin est exécutée, c'est-à-dire ClosePendingOrder(OP).

Ou vous pouvez rechercher les ordres par assistant avec l'exécution de l'ordre satisfaisant la condition .

 

Les gars, mettez en place des sociétés de courtage étrangères...très grosses sommes d'argent et ne veulent pas payer de taxes....)) qui travaillent sur Metatrader 4...))

 
Vovo4ka:

Les gars, mettez en place des sociétés de courtage étrangères...très grosses sommes d'argent et ne veulent pas payer de taxes....)) qui travaillent sur Metatrader 4...))

Il y en a beaucoup.

Google vous y conduira facilement.

Payez vos impôts et dormez bien...

 

Après-midi. Veuillez m'indiquer comment "forcer" l'EA à arrêter de placer des ordres en attente si j'ai déjà 5 ordres de marché d'achat et 5 ordres de vente ouverts et que dès qu'au moins un des ordres se ferme, l'EA continue de placer des ordres en attente dans la direction où l'ordre s'est fermé, et ainsi de suite dans le cycle. (Maintenant, j'ai déjà posté le code dans une forme correcte)

//----------------------------------------------------------------------- проверка установленных стоп ордеров

double StopOrderUp,StopOrderDn,price,MinBuyOrder=1000000000,MaxSellOrder,OldBuyOrder,OldSellOrder,OldBuyLot,OldSellLot;

int TicketUp,TicketDn;

TimeOllOpenBuy=0;TimeOllOpenSell=0;

double OOL_BUYSTOP,OOL_SELSTOP;

for (i=0; i<OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)

{ price = OrderOpenPrice();

if (Magic==OrderMagicNumber() && OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUYSTOP ) {StopOrderUp = price; TicketUp=OrderTicket(); OOL_BUYSTOP=OrderLots();}

if (OrderType()==OP_SELLSTOP) {StopOrderDn = price; TicketDn=OrderTicket(); OOL_SELSTOP=OrderLots();}

if (OrderType()==OP_BUY )

{ TimeOllOpenBuy = TimeOllOpenBuy + TimeCurrent()-OrderOpenTime();

if (MinBuyOrder > price) MinBuyOrder = price;

OldBuyOrder=price;

OldBuyLot=OrderLots();

if (DrawInfo&&!IsTesting()){

NameLine="ордер Bay "+OrderTicket();ObjectDelete(NameLine);ObjectDelete(NameLine+" з");

ObjectCreate(NameLine, OBJ_TREND, 0, OrderOpenTime(),price,Time[0],Bid);

ObjectSet(NameLine, OBJPROP_COLOR,LightSkyBlue);

ObjectCreate(NameLine+" з",OBJ_ARROW,0,Time[0],Bid,0,0,0,0);

ObjectSet(NameLine, OBJPROP_STYLE, STYLE_DOT);// Стиль

ObjectSet(NameLine, OBJPROP_RAY, false); // Луч

ObjectSet(NameLine+" з",OBJPROP_ARROWCODE,3);ObjectSet(NameLine+" з",OBJPROP_COLOR,WhiteColor);}

}

if (OrderType()==OP_SELL)

{ TimeOllOpenSell = TimeOllOpenSell + TimeCurrent()-OrderOpenTime();

if (MaxSellOrder < price) MaxSellOrder = price;

OldSellOrder=price;

OldSellLot=OrderLots();

if (DrawInfo&&!IsTesting()){

NameLine="ордер Sell "+OrderTicket();ObjectDelete(NameLine);ObjectDelete(NameLine+" з");

ObjectCreate(NameLine, OBJ_TREND, 0, OrderOpenTime(),price,Time[0],Ask);

ObjectSet(NameLine, OBJPROP_COLOR,Pink);

ObjectCreate(NameLine+" з",OBJ_ARROW,0,Time[0],Ask,0,0,0,0);

ObjectSet(NameLine, OBJPROP_STYLE, STYLE_DOT);// Стиль

ObjectSet(NameLine, OBJPROP_RAY, false); // Луч

ObjectSet(NameLine+" з",OBJPROP_ARROWCODE,3);ObjectSet(NameLine+" з",OBJPROP_COLOR,WhiteColor);}

}

}

}

}

if (MinBuyOrder==1000000000 && MaxSellOrder==0 && OOL_BUYSTOP!=OOL_SELSTOP)//если серия закрылась

{

DELETEORDERS();

}
 

Les gars, une autre question s'est posée. Certains courtiers, dont Alpari, par exemple, proposent à leurs clients un spread flottant .... dans le cadre de cette opération mon conseiller ne fonctionne pas...((((

Ils ont un nombre flottant qui gâche tout... ((((

 
Quelle est la question ? Refaire l'EA...
 
eddy:
Quelle est la question ? Refaire l'EA...


C'est la question, le refaire fonctionne partout, mais pas avec le flottant(((

Raison: