Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 145

 
waroder:


Si je comprends bien (j'espère que c'est correct :))Zolotai veut prendre les données de deux boucles et les écrire dans des fichiers texte. De chacun à un fichier séparé. Il veut ensuite charger les données de ces fichiers dans des tableaux. Ensuite, ces deux tableaux doivent être réunis en un seul tableau afin que les données de deux opérateurs ne soient pas mélangées et corrélées entre elles par chaque barre.

comme ceci))))


 
waroder:


comme je l'ai compris (j'espère correctement :)) Zolotai veut prendre les données de deux instructions de boucle et les écrire dans des fichiers texte. De chacun d'eux à un fichier séparé. Il veut ensuite charger les données de ces fichiers dans des tableaux. Ensuite, ces deux tableaux doivent être réunis en un seul tableau afin que les données des deux opérateurs ne soient pas mélangées et corrélées entre elles par chaque barre.

comme ceci))))

Pourquoi avons-nous besoin de fusionner les données dans un tableau multidimensionnel? La première dimension est indexée par le temps (barres) - les autres sont des données de tableau. Et triez toutes les données de la première dimension comme vous le souhaitez.
 

Les gens, j'ai besoin d'aide, le code ci-dessous est exécuté seulement la deuxième partie, lorsque sellstop devrait être mis, et buystop pour une raison quelconque n'est pas mis, bien que toutes les conditions sont remplies, je ne peux même pas voir ce qui ne va pas))

si (OrdersTotal()==2)

{

OrderSelect(2,SELECT_BY_TICKET) ;

si (OrderType()==OP_SELL)

{

OrderSelect(2,SELECT_BY_TICKET) ;

double b = OrderOpenPrice() ;

OrderSend(Symbol(),OP_BUYSTOP,2,b+28*Point,3,b-25*Point,b+50*Point,0,5) ;

}

OrderSelect(4,SELECT_BY_TICKET) ;

si (OrderType()==OP_BUY)

{

OrderSelect(4,SELECT_BY_TICKET) ;

double a = OrderOpenPrice() ;

OrderSend(Symbol(),OP_SELLSTOP,2,a-28*Point,3,a+25*Point,a-50*Point,0,6) ;

}

}

 

Eh bien, puisque vous êtes sûr que l'ordre numéro 2 est un ordre de vente, il ne vous reste plus qu'à normaliser le prix, le stop et la prise.

Et regardez les logs de l'EA.

 

Bonjour, Pouvez-vous me conseiller s'il vous plaît - Je cherche une chouette ou un script :

Il y a un niveau d'ordre il y a un stop et 3 takeprofits, il faut que lorsqu'un certain niveau est atteint par exemple le premier tr order soit fermé d'une certaine partie (fixée par moi-même) et que la partie restante soit transférée à un niveau que j'ai également fixé moi-même... :

Exemple

ordre à 1.5800 stop 1.5750 1 position - 1.5850 2 points - 1.5900 3 points - 1.5950, donc quand l'ordre atteint 1.5850 supposons que 40% du lot est fermé, le reste à 1.5800 (ie en bu) à 2 points 20% et le reste est transféré à 1.5850 et 3 points sont fermés complètement.

Le plus important est de pouvoir modifier moi-même les valeurs en fonction de la situation.

 
zaqwsx123:

Les gens, j'ai besoin d'aide, le code ci-dessous est exécuté seulement la deuxième partie, lorsque sellstop devrait être mis, et buystop pour une raison quelconque n'est pas mis, bien que toutes les conditions sont remplies, je ne peux même pas voir ce qui ne va pas))

si (OrdersTotal()==2)

{

OrderSelect(2,SELECT_BY_TICKET) ;

si (OrderType()==OP_SELL)

{

OrderSelect(2,SELECT_BY_TICKET) ;

double b = OrderOpenPrice() ;

OrderSend(Symbol(),OP_BUYSTOP,2,b+28*Point,3,b-25*Point,b+50*Point,0,5) ;

}

OrderSelect(4,SELECT_BY_TICKET) ;

si (OrderType()==OP_BUY)

{

OrderSelect(4,SELECT_BY_TICKET) ;

double a = OrderOpenPrice() ;

OrderSend(Symbol(),OP_SELLSTOP,2,a-28*Point,3,a+25*Point,a-50*Point,0,6) ;

}

}

Le ticket n° 2, ainsi que le n° 4, ne peuvent apparaître que dans le testeur. C'est l'utopie sur le réel/démo. Lorsque vous sélectionnez un ordre sur un ticket, vous devez d'abord vous assurer que l'ordre est bien sélectionné, puis vérifier l'heure de sa clôture. S'il est == 0, cela signifie que l'ordre a été sélectionné dans la liste des ordres au marché. Si l'heure de clôture de l'ordre est > 0, cela signifie que l'ordre a déjà été clôturé et qu'il est sélectionné dans la liste des ordres clôturés. Lors de l'envoi d'une demande de transaction au serveur, tous les prix doivent d'abord être à jour (les plus récents ; pour ce faire, les prix doivent être obtenus via MarketInfo() ou RefreshRates() avant d'envoyer la demande), et ensuite, tous les prix doivent être normalisés aux chiffres exacts
 
Villcommen:

Bonjour, Pouvez-vous me conseiller s'il vous plaît - Je cherche une chouette ou un script :

Il y a un niveau d'ordre il y a un stop et 3 takeprofits, il faut que lorsqu'un certain niveau est atteint par exemple le premier tr order soit fermé d'une certaine partie (fixée par moi-même) et que la partie restante soit transférée à un niveau que j'ai également fixé moi-même... :

Exemple

ordre à 1.5800 stop 1.5750 1 position - 1.5850 2 points - 1.5900 3 points - 1.5950, donc quand l'ordre atteint 1.5850 supposons que 40% du lot est fermé, le reste à 1.5800 (ie en bu) à 2 points 20% et le reste est transféré à 1.5850 et 3 points sont fermés complètement.

Le plus important est de pouvoir modifier moi-même les valeurs en fonction de la situation.

Avez-vous regardé dans la base de données des chats?
 

Les gars, parlez-moi de cette merde ! !! Lorsque je crée un nouvel indicateur, j'ai toujours un problème avec la sortie du tampon sur le graphique. Il semble que j'aie tout écrit correctement, mais les valeurs n'apparaissent pas..... Je suis déjà épuisé....

#property copyright "nikelodeon"
#property link      ""
extern int k=5;
extern int k1=8;

#property indicator_chart_window
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
int init()
  {
SetIndexBuffer(0,Buffer2);         // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2,Red);// Линия
SetIndexBuffer(1,Buffer1);// Назначение массива буферу 
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2,Blue);// Линия
SetIndexStyle (2,DRAW_ARROW,STYLE_SOLID,1,Red);
SetIndexArrow (2,159);// Стиль линии 
SetIndexBuffer(2,Buffer3);
SetIndexEmptyValue(2,0.0);// Назначение массива буферу
SetIndexStyle (3,DRAW_ARROW,STYLE_SOLID,1,Blue);
SetIndexArrow (3,159);// Стиль линии 
SetIndexBuffer(3,Buffer4);// Назначение массива буферу 
SetIndexEmptyValue(3,0.0);
SetIndexStyle (4,DRAW_ARROW,STYLE_SOLID,2,Green);
SetIndexArrow (4,159);// Стиль линии 
SetIndexBuffer(4,Buffer5);// Назначение массива буферу 
SetIndexEmptyValue(4,0.0);
SetIndexStyle (5,DRAW_ARROW,STYLE_SOLID,2,Green);
SetIndexArrow (5,251);// Стиль линии 
SetIndexBuffer(5,Buffer6);// Назначение массива буферу 
SetIndexEmptyValue(5,0.0);
SetIndexStyle (6,DRAW_ARROW,STYLE_SOLID,2,Red);
SetIndexArrow (6,241);// Вход Бай
SetIndexBuffer(6,Buffer7);// Назначение массива буферу 
SetIndexEmptyValue(6,0.0);
SetIndexStyle (7,DRAW_ARROW,STYLE_SOLID,2,Blue);
SetIndexArrow (7,242);// Вход сел 
SetIndexBuffer(7,Buffer8);// Назначение массива буферу 
SetIndexEmptyValue(7,0.0);

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  int i,b,limit;
limit=Bars;
if (b!=Bars){
b=Bars;
      for(i=limit; i>=0; i--){
      
      if ((setupUP(i,4,5)==1)) {Buffer5[i+1]=Low[i+1];} else Buffer5[i+1]=0;
      if ((setupDOWN(i,4,5)==1)){Buffer5[i+1]=High[i+1];} else Buffer5[i+1]=0;
      
      
      

      }
      
  Buffer5[i+1]=Low[i+1];    
}
 
   return(0);
  }
//+------------------------------------------------------------------+


int setupUP (int i, int k, int k1)
{
int num=0;
int setUP=0;
for (i=0; i>=100; i++){
 if((Close[i+1]<Close[i+k])) {num=num+1;}
 }
 
 if (num>=k1) {
               setUP=1;
               return (setUP);     
            }
return (0);
}

int setupDOWN (int i, int k, int k1)
{
int num=0;
int setUP=0;
 if((Close[i+1]>Close[i+k])) {num=num+1;}
 if (num>k1) {
               setUP=1;
               return (setUP);     
            }

}
Que dois-je faire pour sortir le cinquième tampon ?
 
zaqwsx123:

Les gens, j'ai besoin d'aide, le code ci-dessous est exécuté seulement la deuxième partie, lorsque sellstop devrait être mis, et buystop pour une raison quelconque n'est pas mis, bien que toutes les conditions sont remplies, je ne peux même pas voir ce qui ne va pas))

si (OrdersTotal()==2)

{

...

Pour insérer correctement le code dans le forum, cliquez sur SRC

Nous devrions en fait utiliser if pour sélectionner l'ordre

if (OrderSelect(2,SELECT_BY_TICKET))
{
  //--- действие
 
Eh bien, il n'y a pas de pros sur ma question ????.
Raison: