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

 
sergeev >>:

приведите здесь вашу функцию открытия ордеров.

int NewOrder(int Cmd,double Lot)

{double TP=0, TP2=0;

doppio SL=0, SL2=0;

doppio PR=0;

datetime endtime;


mentre(!IsTradeAllowed()) Dormire(100);

endtime = TimeCurrent()+4*60*60;


se(Cmd == OP_BUYSTOP)

{

PR=TOP+10*Punto;

PR=NormalizeDouble(PR,2);

se(TakeProfit>0)

{

TP=PR+25*Punto;

}

se(StopLoss>0)

{

SL=PR-30*Punto;

SL=NormalizeDouble(SL,2);

}

}

se(Cmd==OP_SELLSTOP)

{

PR=BOT-7*Punto;

PR=NormalizeDouble(PR,2);

se(TakeProfit>0)

{

TP=PR-25*Punto;

}

se(StopLoss>0)

{

SL=PR+30*Punto;

SL=NormalizeDouble(SL,2);

}

}

se ((TOP-BOT)<115*Punto)

int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,endtime,CLR_NONE);

else

Print("Grande differenza tra TOR e BOT: ",(TOP-BOT));

if(tic<0) Print("Errore di apertura dell'ordine: ",GetLastError();


ritorno(tic);

 
sanyooooook >>:

а ордер как закрывается? по стоп лосту или функцией OrderClose()

allo stop loss o take profit.

 

Ciao a tutti... ho una domanda... dove posso vedere un rapporto delle transazioni... totale per tutto il periodo di lavoro...?

 
sergeev >>:
В принципе можно искать ордера в истории и отсортировать их, затем узнать два последних закрытия. Но это вам надо пройтись по всем ордерам истории два раза.

используйте OrderHistoryTotal(), MODE_HISTORY, OrderCloseTime()>0, OrderProfit()

Другим вариантом - чтоб не сканировать два раза историю - это запоминание тикетов открывшихся ордеров и потом определения их профита.

Come si memorizzano esattamente i biglietti? E come si capisce: per accedere a un biglietto, bisogna selezionare un ordine, e per selezionarlo, bisogna conoscere il biglietto...

 
just-me >>:

А как именно запоминать тикеты? И как понимать: чтоб обратиться к тикету - нужно выбрать ордер, а чтоб его выбрать - нужно знать тикет...

non è necessario conoscere il biglietto per selezionare un ordine

 

Sono confuso con la funzione marketinfo e non riesco a calcolare il valore corretto dello spread per uno strumento nella valuta di deposito con una data dimensione del lotto. Potete suggerire una formula corretta? Ne ho bisogno sia per spot che per CFD...

 

Ho una domanda per gli esperti - è possibile fare una costante, il primo valore di prezzo ricevuto quando avvio l'Expert Advisor?

Voglio salvare questo prezzo come una costante, in modo che per tutto il tempo in cui l'EA è in esecuzione, posso fare riferimento ad esso. L'unica domanda è: come farlo? Perché Ask cambia continuamente, e non riesco a trovare la funzione di copia.

 

fare una variabile globale o solo una variabile

e inserire questo non nella funzione start, ma nella funzione init

int init()
  {
//----
   GlobalVariableSet("Price_Start",Ask);
//----
   return(0);
  }
 
Kesha_k85 >>:

У меня такой вопрос к спецам - есть ли возможность сделать константой, первое полученное значение цены при запуске советника?

Т.е если я запустил советник и в это время цена Ask=1.4444 Я хочу эту цену сохранить как константу, чтобы всё время работы советника можно было к ней орбащаться. Только вот вопрос, как это сделать??? Ведь Ask постоянно меняеться, а функции копирования я нигде не нашёл.


Una variazione sul tema.


double Price_Start;

int init()
 {
   Price_Start=Ask;
   return(0);
 }


double Price_Start=0;

int start()
 {
   if ( Price_Start<0.001) Price_Start=Ask;
   //....
 }
 
just-me писал(а) >>

Come si memorizzano esattamente i biglietti? E come si capisce: per fare riferimento a un biglietto, bisogna selezionare un ordine, e per selezionarlo, bisogna conoscere il biglietto...

https://docs.mql4.com/ru/trading/OrderSelect - vedi SELECT_BY_POS

Motivazione: