[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 - 5. - page 23

 
WindSW:

Mon code permet de déterminer plus facilement le nombre d'itérations via ArrayRange.

Pourquoi est-ce que j'obtiens 0 lorsque j'écris xDelH[countDH][0]=HBar[countH][0] ; (bien que HBar[countH][0] soit déjà remplie et ait sa propre valeur) ? Est-ce que je peux le faire ?

Comment vérifier la valeur de xDelH[countDH][0] après cette opération d'affectation ?
 
Veuillez me dire quelle fonction mémorise le prix du Take Profit du dernier ordre ouvert.
 
Frostr:
Veuillez me dire quelle fonction mémorise le prix du Take Profit du dernier ordre ouvert.

Si vous devez vous en souvenir exactement, il suffit d'enregistrer la valeurTakeProfit dans une variable chaque fois que vous ouvrez un ordre.
 

J'ai juste besoin de

//moyenne en calculant le prix moyen
double averageprice = NormalizeDouble(sum/allots, Digits) ;
//modifier tous les ordres de la série en déplaçant le même TakeProfit pour chaque ordre ouvert
for ( trade = OrdersTotal() - 1 ; trade >= 0 ; trade-- )
{
if ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
{
//Prise de bénéfice pour un ordre d'ACHAT
if ( OrderType() == OP_BUY) tp = averageprice + TP * Point ;
//Prise de bénéfice pour un ordre de VENTE
if ( OrderType() == OP_SELL) tp = averageprice - TP * Point ;
//modifier l'ordre appartenant à la série
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(tp, Digits), 0, Yellow) ;
}
}
}

modifier les anciens ordres, changer leur TakeProfit en TakeProfit du nouvel ordre ouvert (si le prix clôture le dernier ordre au Stop alors tous les ordres précédents seront également clôturés)

 
Frostr:

J'ai juste besoin de

//moyennage en calculant le prix moyen
double averageprice = NormalizeDouble(sum/allots, Digits) ;
//modifier tous les ordres de la série en déplaçant le même TakeProfit pour chaque ordre ouvert.
for ( trade = OrdersTotal() - 1 ; trade >= 0 ; trade-- )
{
si ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
{
//Profit pour l'ordre d'achat
if ( OrderType() == OP_BUY) tp = averageprice + TP * Point ;
//prendre le profit pour un ordre de VENTE
if ( OrderType() == OP_SELL) tp = averageprice - TP * Point ;
//modifier un ordre qui appartient à la série
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(tp, Digits), 0, Yellow) ;
}
}
}

modifier les anciens ordres, changer leur TakeProfit en TakeProfit d'un nouvel ordre ouvert (si le prix clôture le dernier ordre au stop, tous les ordres précédents seront également clôturés)


Les précédentes se fermeront si vous définissez un seul stoploss pour l'ensemble de la série. Cela permettra de conserver le bénéfice réalisé sur ces ordres, ou de réduire la perte si le prix a changé. Si vous laissez le stop loss différent pour chaque ordre (sans le modifier), un seul ordre sera fermé. La valeur TakeProfit des autres ordres de la série devra être soit recalculée, soit égale à la valeur précédente.
 
paladin80:
Comment vérifier la valeur de xDelH[countDH][0] après cette opération d'affectation ?

Via Print
 

Bonne journée ! !! vous savez, je passe deux commandes avec cet endroit - à dessein, une avec un arrêt et une sans. Dans le testeur, les deux sont supprimés !!!!.

 if   (Svetsja_1 &&  !Svetsja_2  && !Svetsja_3  &&  !Orderbuy ){
    //стоп лосс 25 п. профит 30 п;стоп лосс 25 п. тралится по MA 20    
         
        RefreshRates();
          OrderSend (Symbol( ), OP_BUY, lot ,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Ask- (25*Point),Digits),   NormalizeDouble( Ask+( 30*Point),Digits), NULL, 450, 0, CLR_NONE);
           int Error=GetLastError();if (Error==0){  
           Sleep(2000); RefreshRates(); 
          OrderSend (Symbol( ), OP_BUY,  lot ,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Ask- (25*Point),Digits),   0, NULL, 450, 0, CLR_NONE); }
            Error=GetLastError(); Orderbuy=1; 
            if (Error!=0){ string errorcomment = "Ошибка открытия  ордера OP_BUY"  + " " + Symbol() +  " " + ErrorDescript(Error); 
            Print (errorcomment);}   }  } }

Je n'ai absolument aucune idée de ce qui se passe ici.


 
Dimka-novitsek:

Bonne journée ! !! vous savez, je passe deux ordres à cet endroit - à dessein, l'un avec un stop, l'autre sans. Dans le testeur, les deux sont supprimés !!!!.

Je n'ai absolument aucune idée de ce qui se passe ici.



Regardez bien, vous avez défini un stoploss pour les deux et un takeprofit pour un seul. Donc c'est comme vous l'avez écrit : les deux seront fermés au stoploss et un seul sera fermé au takeprofit.
 
Dimka-novitsek:

Bonne journée ! !! vous savez, je passe deux commandes avec cet endroit - à dessein, une avec un arrêt et une sans. Dans le testeur, les deux sont supprimés !!!!.

Je n'ai absolument aucune idée de ce qui se passe ici.

Il est probablement trop tôt pour que vous le "fumiez" - VOUS POURRIEZ ÊTRE SUSPENDU ! :)))
 
Oui, merci ! !! C'était moi qui arrivait directement de la rue à l'ordinateur et j'étais totalement confus !