Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 962

 
rapid_minus:

Per favore, chiarite, sono totalmente confuso:

Ho trovato uno script che chiude gli ordini con profitto o con meno, ma non capisco la logica - nelle variabili esterne è impostato il bool close_only_profit_orders=false, e poi in f-i start è controllato dalla negazione: if(OrderType()==OP_BUY && (!close_only_profit_orders || order_prof>0). Cioè, se non è falso o ci sono ordini con un profitto, allora segue la funzione OrderClose(). Ma da nessuna parte nel codice, non ci sono condizioni sotto le quali la variabile close_only_profit_orders diventa vera. Allora a cosa serve?


Non c'è niente da trovare con questa variabile. Questo è un parto dell'immaginazione del programmatore; solo lo sviluppatore sa cosa c'è nel vostro EA. Posso solo ipotizzare per quale motivo questo possa accadere e come verificarlo. Ho appena incontrato un EA che stupidamente ha chiuso tutti gli ordini su tutte le coppie prima di iniziare a lavorare. Beh, questo è un parto dell'immaginazione del programmatore. Quindi, se il vostro Expert Advisor funziona come dovrebbe, dobbiamo cercare dove è stato scritto di chiudere gli ordini e per quale motivo. Forse, maghi diversi aiuteranno.
 

Per favore, aiutatemi a risolvere il problema.

int n1=.....;

int n2=.....;

M1[i]=iMA(NULL,0,n1,n2,MODE_SMA,PRICE_CLOSE,i);

Mostro i valori di n1 e n2 nel commento, i valori sono corretti, ma il mouse non è disegnato correttamente, non su tutto il grafico. Ma se digito a mano i valori di n1 e n2 al posto di queste variabili, tutto viene disegnato come dovrebbe essere. Non capisco come sia possibile quando i valori delle variabili sono corretti? Come posso fare in modo che il grafico sia disegnato con un offset a destra? Ora viene disegnato solo fino alla barra zero, cioè quella attuale.

 
Alexandr24:

Per favore, aiutatemi a risolvere il problema.

int n1=.....;

int n2=.....;

M1[i]=iMA(NULL,0,n1,n2,MODE_SMA,PRICE_CLOSE,i);

Mostro i valori di n1 e n2 nel commento, i valori sono corretti, ma il mouse non è disegnato correttamente, non su tutto il grafico. Ma se digito a mano i valori di n1 e n2 al posto di queste variabili, tutto viene disegnato come dovrebbe essere. Non capisco come sia possibile quando i valori delle variabili sono corretti? Come posso fare in modo che il grafico sia disegnato con un offset a destra? Ora viene disegnato solo fino alla barra zero, cioè quella attuale.

Se n1 non è uguale al valore del TF, allora capisco perché non viene disegnato correttamente. Ma uno spostamento a destra farà n2 più! Controllato!
 
borilunad:
Se n1 non è uguale al valore TF, allora capisco perché non viene disegnato correttamente. E lo spostamento a destra farà n2 con meno.

Non capisco cosa c'entri TF, n1 è il periodo di media per il calcolo dell'indicatore. Ho una buona idea di cosa farci, non sono sicuro di cosa farci, ma non sono sicuro di cosa farci.

UPD. ho messo 0 al posto di n2 e lo shift è reso bene, ma n1 è un po' strano :(

 
double  iMA(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          ma_period,        // период - n1    
   int          ma_shift,         // сдвиг средней - n2
   int          ma_method,        // метод усреднения
   int          applied_price,    // тип цены
   int          shift             // сдвиг
   );

Proprio così! Sono io che ho sbagliato, ma perché non dovrebbe funzionare se lo fai bene?!

 
borilunad:

Proprio così! Sono io che sbaglio, ma perché non può funzionare se lo fai bene?!

Sì, anche io sono perplesso da questo paradosso. Se riavvio il terminale, il carro viene reso come dovrebbe essere, ma riavviare ogni volta è scomodo.

UPD Ho risolto il problema premendo il tasto destro e selezionando "Refresh" dal menu, ma se premo compile nel codice, il disegno è incasinato... Ma questa è un'inezia, aggiornerò semplicemente :))

 
Alexandr24:

Anche questo paradosso mi lascia perplesso. Se riavvio il terminale, allora il carro viene disegnato come dovrebbe essere, ma è scomodo riavviare ogni volta.

UPD Il problema è stato risolto cliccando con il tasto destro del mouse e selezionando "Refresh" nel menu, ma se premo compile nel codice, il carro viene disegnato in modo errato... ma questa è un'inezia, aggiornerò semplicemente :))

Mostrami il codice, non solo pezzi e bocconi
 

L'ho risolto da solo, grazie per il tuo contributo :)

 
Saluti a tutti!
Ho cercato sul forum e su Internet - non l'ho trovato. Ecco perché ho una domanda per voi:

1. Un EA apre (in base all'incrocio con la MA) più (3) ordini a mercato allo stesso prezzo (es. COMPRA a 1,1180).

Prima che la MA fosse attraversata, gli ordini erano ordini Buy Stop.

2. Poi l'Expert Advisor dovrebbe impostare questi tre ordini Takeprofit a livelli diversi (sono determinati solo quando intersecano la MA, secondo l'indicatore Fibo standard)

Supponiamo che questi livelli siano i seguenti:
Ur1 = 1,1200
Ur2 = 1,1220
Ur3 = 1,1240

E ora una domanda:
Come impostare questi livelli definiti per gli ordini aperti?

Ho trovato una costruzione del genere sul forum (vedi sotto), ma non mi viene in mente nient'altro. Se non sono sicuro di quello che sto cercando, preferirei avere qualche consiglio su come farlo.
Ho bisogno di un altro contatore? Ma come? O dovrò usare array, majicies, o... ????

double Ur1 = 1.1200
double Ur2 = 1.1220  
double Ur3 = 1.1240
for(int i=OrdersTotal()-1;i>=0;i--) 
{
   if(OrderSelect(i, SELECT_BY_TICKET, MODE_TRADES)==false) continue;
   if(OrderSymbol()!=Symbol()) continue;
      if(OrderType()!=0) continue;
                   
   // вот тут мы можем работать с нашим ордером
   
   if (OrderTicket() = ???? );
 
 bool mod_Buy1 = OrderModify ( OrderTicket(???),OrderOpenPrice (), NULL,Ur1,0,clrNONE);
 bool mod_Buy2 = OrderModify ( OrderTicket(???),OrderOpenPrice (), NULL,Ur2,0,clrNONE);
 bool mod_Buy3 = OrderModify (OrderTicket(???),OrderOpenPrice (), NULL,Ur3,0,clrNONE);


}  

 
vadimvborisov:
Come si posizionano i tre ordini aperti a questi livelli dati?

1. Cosa vi impedisce di impostare i TP appropriati per gli ordini quando vengono aperti?
2. Cos'è questo mod_Buy1/2/3? - Avete capito lo scopo del ciclo di cui sopra?