[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 23

 
WindSW:

Il mio codice rende più facile determinare il numero di iterazioni tramite ArrayRange.

Perché ottengo 0 quando scrivo xDelH[countDH][0]=HBar[countH][0]; (anche se HBar[countH][0] è già pieno e ha il suo valore)? Posso fare tutto questo?

Come controllate il valore di xDelH[countDH][0] dopo questa operazione di assegnazione?
 
Per favore, ditemi quale funzione ricorda il prezzo Take Profit dell'ultimo ordine aperto
 
Frostr:
Per favore, ditemi quale funzione ricorda il prezzo Take Profit dell'ultimo ordine aperto

Se avete bisogno di ricordare esattamente, basta salvare il valore diTakeProfit in una variabile ogni volta che aprite un ordine.
 

Ho solo bisogno di

//media calcolando il prezzo medio
double averageprice = NormalizeDouble(sum/allots, Digits);
//modifica tutti gli ordini della serie spostando lo stesso TakeProfit per ogni ordine aperto
for ( trade = OrdersTotal() - 1; trade >= 0; trade-- )
{
if ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
{
//prendere profitto per un ordine BUY
if ( OrderType() == OP_BUY) tp = averageprice + TP * Point;
//prendere profitto per un ordine SELL
if ( OrderType() == OP_SELL) tp = averageprice - TP * Point;
//modifica l'ordine appartenente alla serie
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(tp, Digits), 0, Yellow);
}
}
}

ha modificato i vecchi ordini, cambiato il loro TakeProfit con il TakeProfit del nuovo ordine aperto (se il prezzo chiude l'ultimo ordine a Stop allora anche tutti gli ordini precedenti saranno chiusi)

 
Frostr:

Ho solo bisogno di

//una media calcolando il prezzo medio
double averageprice = NormalizeDouble(sum/allots, Digits);
//modifica tutti gli ordini della serie spostando lo stesso TakeProfit per ogni ordine aperto
for ( trade = OrdersTotal() - 1; trade >= 0; trade-- )
{
if ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
{
//Profitto per ordine BUY
if ( OrderType() == OP_BUY) tp = averageprice + TP * Point;
//prendere profitto per un ordine SELL
if ( OrderType() == OP_SELL) tp = averageprice - TP * Point;
//modificare un ordine che appartiene alla serie
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(tp, Digits), 0, Yellow);
}
}
}

modificare i vecchi ordini, cambiare il loro TakeProfit in TakeProfit di un nuovo ordine aperto (se il prezzo chiude l'ultimo ordine allo stop, si chiuderanno anche tutti gli ordini precedenti)


I precedenti si chiudono se si imposta un unico stoploss per tutta la serie. Questo aiuterà a salvare il profitto ottenuto con questi ordini, o a ridurre la perdita se il prezzo è cambiato. Se si lascia lo stop loss diverso per ogni ordine (senza cambiarlo), allora solo un ordine sarà chiuso. Il valore di TakeProfit per gli altri ordini della serie dovrà essere ricalcolato o impostato uguale al valore precedente.
 
paladin80:
Come controllate il valore di xDelH[countDH][0] dopo questa operazione di assegnazione?

Tramite stampa
 

Buona giornata!!! Sapete, faccio due ordini con questo posto - per progetto, uno con una fermata e uno senza. Nel tester, entrambi sono cancellati!!!!

 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);}   }  } }

Non ho assolutamente idea di cosa stia succedendo qui.


 
Dimka-novitsek:

Buona giornata!!! Sapete, faccio due ordini con questo posto - per progetto, uno con uno stop e uno senza. Nel tester, entrambi sono cancellati!!!!

Non ho assolutamente idea di cosa stia succedendo qui.



Guarda bene, hai impostato lo stoploss per entrambi e il takeprofit per uno solo. Quindi è come hai scritto: entrambi saranno chiusi allo stoploss e solo uno sarà chiuso al takeprofit.
 
Dimka-novitsek:

Buona giornata!!! Sapete, faccio due ordini con questo posto - per progetto, uno con uno stop, l'altro senza. Nel tester, entrambi sono cancellati!!!!

Non ho assolutamente idea di cosa stia succedendo qui.

Probabilmente è troppo presto per "fumarlo" - POTREBBE ESSERE SOSPESO! :)))
 
Sì, grazie!!! Ero io che venivo direttamente dalla strada al computer ed ero totalmente confuso!
Motivazione: