Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 257

 
Rebonjour ! Aidez-nous à résoudre cette banalité pour vous, car je n'arrive pas à comprendre.....

Je veux faire ce qui suit :

Après avoir ouvert la première transaction au prix de 1,23455 par exemple, je veux que la deuxième transaction soit ouverte lorsque le prix atteindra 1,23415.

Code PHP :
double positionTPask=NormalizeDouble(Ask*Point,Digits) ;
double lastTPask1=NormalizeDouble(Ask-40*Point,Digits) ;

if (
RSI0<RSIDownLevel&&RSIDownLevel<=RSI1){
TP=NormalizeDouble(Ask+takeprofit*Point,Digits) ;
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)==-1)Print(GetLastError()) ;

if (
positionTPask1>lastTPask1){
if (
takeprofit!=0)TPm=NormalizeDouble(Ask+takeprofit*Point,Digits) ;
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TPm,NULL,Magic)==-1) Print(GetLastError()) ;
}}

Et j'ai 2 commandes ouvertes en même temps à un prix...
Est-ce correct ? Vérifiez...
 

sviter-pro:
Здраствуйте еще раз! Помогите с этой банальностью для вас, ато я разобраться не могу....

Хочу сделать следующее! 

Когда открывается первая сделка по цене к примеру 1.23455, то хочу что бы вторая сделка открывалась когда цена пойдет на 1.23415

double positionTPask = NormalizeDouble(Ask * Point, Digits);
double lastTPask1 = NormalizeDouble(Ask - 40 * Point, Digits);

if (RSI0 < RSIDownLevel && RSIDownLevel <= RSI1){
      TP  = NormalizeDouble(Ask + takeprofit * Point,Digits); 
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)==-1) Print(GetLastError());
      
   if (positionTPask1 > lastTPask1){
      if (takeprofit!=0) TPm  = NormalizeDouble(Ask + takeprofit * Point, Digits); 
      if (OrderSend(Symbol(), OP_BUY, Lot, NormalizeDouble(Ask, Digits), slippage, 0, TPm, NULL, Magic)==-1) Print(GetLastError());
      }}  
Et j'ai 2 commandes ouvertes en même temps au même prix...

Est-ce que c'est bien fait ? Est-ce que tu regarderais ça...

Dans la première ligne, j'ai vu une chose étrange. Je n'ai pas cherché plus loin.

C'est pour quoi faire ?

double positionTPask = NormalizeDouble(Ask * Point, Digits);

Sur une calculatrice, multipliez Ask par Point

J'ai une très bonne idée de la façon de coller correctement le code.

 
sviter-pro:
Rebonjour ! Aidez-nous à résoudre cette banalité pour vous, car je n'arrive pas à comprendre.....

Je veux faire ce qui suit !

Lorsque mon premier ordre s'ouvre à 1.23455, je veux que mon deuxième ordre s'ouvre lorsque le prix atteindra 1.23415.

Code PHP :
double positionTPask=NormalizeDouble(Ask*Point,Digits) ;
double lastTPask1=NormalizeDouble(Ask-40*Point,Digits) ;

if (
RSI0<RSIDownLevel&&RSIDownLevel<=RSI1){
TP=NormalizeDouble(Ask+takeprofit*Point,Digits) ;
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)==-1)Print(GetLastError()) ;

if (
positionTPask1>lastTPask1){
if (
takeprofit!=0)TPm=NormalizeDouble(Ask+takeprofit*Point,Digits) ;
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TPm,NULL,Magic)==-1) Print(GetLastError()) ;
}}

J'ai ouvert 2 commandes à un seul prix ...
Est-ce correct ? Veuillez vérifier...
Vous ne devez pas danser à partir de Ask-40*Point, mais à partir du prix à l'ouverture d'une position-40*Point.
 

Je n'ai pas beaucoup travaillé avec les indicateurs, donc c'est peut-être une question simple, comment puis-je désactiver l'affichage du tampon graphique dans la"fenêtre de données" ? Je veux supprimer les tampons 3 et 4, voici le code :

#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property  indicator_color1 Black
#property  indicator_color2 Yellow
#property  indicator_color3 Black
#property  indicator_color4 Black

//---- input parameters
input int RSIPeriod=14;
input int Levl=50;
input ENUM_TIMEFRAMES TF=PERIOD_CURRENT;
//---- buffers
double RSIBuffer[];
double MABuffer[];
double PosBuffer[];
double NegBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(4);
   SetIndexBuffer(0,RSIBuffer);
   SetIndexBuffer(1,MABuffer);
   SetIndexBuffer(2,PosBuffer);
   SetIndexBuffer(3,NegBuffer);
   
//---- indicator line
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_NONE);
   SetIndexStyle(3,DRAW_NONE);
//----
//---- name for DataWindow and indicator subwindow label
   short_name="RSI("+IntegerToString(RSIPeriod,0,' ')+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
   SetIndexLabel(1,"Levl"+"_"+IntegerToString(Levl,0,' ')+" Price");
   SetIndexLabel(2,"U");
   SetIndexLabel(3,"D");
   

   return(0);
  }

Il s'agit d'un RSI modifié - les tampons sont nécessaires à cet endroit, car le calcul est basé sur des données passées et je ne veux pas changer la taille du tampon à chaque fois (s'il n'est pas graphique) et y ajouter de nouvelles données, donc les tampons graphiques sont pratiques pour mes objectifs.

 
Alekseu Fedotov:
Vous ne devez pas danser à partir de Ask-40*Point, mais à partir du prix d'ouverture1position-40*Point.

Alors lisez le prix d'ouverture et la danse....

 
Aleksey Vyazmikin:

Je n'ai pas beaucoup travaillé avec les indicateurs, donc c'est peut-être une question simple, comment puis-je désactiver l'affichage du tampon graphique dans la"fenêtre de données" ? Je veux supprimer les tampons 3 et 4, voici le code :

Il s'agit d'un RSI modifié - les tampons sont nécessaires à cet endroit, car le calcul est basé sur des données passées et je ne veux pas changer la taille du tampon à chaque fois (s'il n'est pas graphique) et y ajouter de nouvelles données, donc les tampons graphiques sont pratiques pour mes objectifs.


Je ne sais pas si je vous ai bien compris.

Essayez comme ça :#property indicator_buffers 2

#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property  indicator_color1 Black
#property  indicator_color2 Yellow
 
Alexander Voronkov:

Je ne sais pas si j'ai bien compris.

Essayez comme ça :#property indicator_buffers 2


Il semble que vous ayez raison ! Et par bonté d'âme, j'ai pensé qu'il fallait le déclarer si un tampon graphique était utilisé pour les calculs.

Merci !
 
Aleksey Vyazmikin: comment désactiver l'affichage du tampon graphique dans lafenêtre de données? Je veux supprimer les tampons 3 et 4, voici le code :

pour désactiver l'affichage dans la fenêtre de données, procédez comme suit

SetIndexLabel(2,NULL);  // Запрет в окно Данные буфера 3
SetIndexLabel(3,NULL);  // Запрет в окно Данные буфера 4
 
STARIJ:

Pour désactiver la sortie dans la fenêtre de données, procédez comme suit


Merci. Ce changement permettra-t-il de voir les tampons interdits dans les données de la fenêtre via iCustom ?

 
Aleksey Vyazmikin: Merci. Ce déplacement vous permettra de voir les tampons qui ne sont pas autorisés à être émis dans la fenêtre de données via iCustom ?

iCustom vous permet de voir uniquement ce qui se trouve dans la fenêtre de données. L'avant-dernier paramètre de la fonction est exactement le numéro du tampon visible dans la fenêtre de données.

Просмотр и настройка графиков - Графики котировок, технический и фундаментальный анализ - Справка по MetaTrader 5
Просмотр и настройка графиков - Графики котировок, технический и фундаментальный анализ - Справка по MetaTrader 5
  • www.metatrader5.com
Графики в торговой платформе отображают изменение котировок финансовых инструментов во времени. Они необходимы для проведения технического анализа...
Raison: