[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 424

 
sergeev >>:

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

int NewOrder(int Cmd,double Lot)

{double TP=0, TP2=0 ;

double SL=0, SL2=0 ;

double PR=0 ;

datetime endtime ;


while(!IsTradeAllowed()) Sleep(100) ;

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


if(Cmd == OP_BUYSTOP)

{

PR=TOP+10*Point ;

PR=NormaliserDouble(PR,2) ;

si(TakeProfit>0)

{

TP=PR+25*Point ;

}

si(StopLoss>0)

{

SL=PR-30*Point ;

SL=NormalizeDouble(SL,2) ;

}

}

if(Cmd==OP_SELLSTOP)

{

PR=BOT-7*Point ;

PR=NormaliserDouble(PR,2) ;

si(TakeProfit>0)

{

TP=PR-25*Point ;

}

si(StopLoss>0)

{

SL=PR+30*Point ;

SL=NormalizeDouble(SL,2) ;

}

}

si ((TOP-BOT)<115*Point)

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

sinon

Print("Grande différence entre TOR et BOT : ",(TOP-BOT)) ;

if(tic<0) Print("Erreur d'ouverture de commande : ",GetLastError() ;


retour(tic) ;

 
sanyooooook >>:

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

au niveau du stop loss ou du take profit.

 

Bonjour à tous...J'ai une question...où puis-je voir un rapport de transaction...total pour toute la période de travail... ?

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

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

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

Comment mémoriser des billets, exactement ? Et comment comprendre : pour accéder à un billet, il faut sélectionner une commande, et pour la sélectionner, il faut connaître le billet...

 
just-me >>:

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

vous n'avez pas besoin de connaître le billet pour sélectionner une commande

 

Je suis confus avec la fonction marketinfo et je n'arrive pas à calculer la valeur correcte du spread pour un instrument dans la devise de dépôt avec une taille de lot donnée. Pouvez-vous suggérer une formule correcte ? J'en ai besoin pour le spot et le CFD...

 

J'ai une question aux experts - est-il possible de faire une constante, la première valeur du prix reçu lorsque je démarre l'EA ?

Je veux enregistrer ce prix comme une constante, afin de pouvoir m'y référer tout au long de l'exécution de l'EA. La seule question est de savoir comment s'y prendre. Parce que Ask est en constante évolution, et je ne trouve pas la fonction de copie.

 

faire une variable globale ou juste une variable

et insérez ceci non pas dans la fonction start, mais dans la fonction init

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

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

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


Une variation sur le thème.


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 писал(а) >>

Comment mémoriser des billets, exactement ? Et comment comprendre : pour se référer à un ticket, il faut sélectionner une commande, et pour la sélectionner, il faut connaître le ticket...

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

Raison: