[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 171

 

Il y a un indicateur, Sanyok est l'auteur.

Il marque le niveau d'une fractale formée sur une barre dont le volume est supérieur au volume moyen des 3 dernières barres avant la fractale.

comment le charger dans un EA ?

J'essaie :

h=NormalizeDouble(iCustom(NULL,0, "vfractals",MODE_UPPER, 1),Digits) ;

l=NormalizeDouble(iCustom(NULL,0, "vfractals",MODE_LOWER, 1),Digits) ;

ça ne marche pas.

Dossiers :
vfractals.mq4  4 kb
 
NormalizeDouble(iCustom(NULL,0, "vfractals",MODE_UPPER, 1),Digits) ; 1. MODE_UPPER et MODE_LOWER signifient que vous prenez les valeurs des premier et deuxième tampons d'indicateur (vous avez zéro et le premier) 2. Le numéro 1 signifie que vous prenez la valeur du [1]-ième élément (sur la dernière mesure).
 
ilunga:
NormalizeDouble(iCustom(NULL,0, "vfractals",MODE_UPPER, 1),Digits) ; 1. MODE_UPPER et MODE_LOWER signifient que vous prenez les valeurs des premier et deuxième tampons d'indicateur (vous avez zéro et le premier) 2. Le chiffre 1 signifie que la valeur du [1]ème élément est prise (à la barre précédente).

Merci.
 

Proposé.

Pavel447 02.03.2011 10:57
Comment allez-vous ?
Si vous disposez d'un Expert Advisor (ou d'un script) qui définit automatiquement les SL, TP, Trailing Stop, et le transfert vers BU sur la prise de bénéfices ... ?
Merci d'avance).

 
Proposé.
dimeon 02.03.2011 11:41
sammi61:

Aidez-moi à ajouter un lot dynamique au code de l'Expert Advisor, de sorte que le lot augmente avec l'augmentation du dépôt, ou comme un pourcentage du dépôt ?
Si lot est 0, alors le lot automatique est activé, si c'est une valeur, alors le lot est fixe.
Fichiers joints:
FiboWave_v1_1lavtolot.mq4 (9.26 KB) supprimé
 
artmedia70:
Les tableaux peuvent être utilisés dans de très nombreux cas et pour de très nombreuses tâches différentes. Quel est donc le bon exemple ?
  if (Cls_B[i]||Cls_S[i]) LotCt=NormalizeLot(OrderLots()/(4-i)); 
comment écrire [i] ? Il me semble que si je le déclare comme une variable..., cela donne une erreur de compilation. Je ne comprends pas... Elle demande une valeur entière, mais un tableau peut également être déclaré comme une variable !
 

100yan:
как прописать [i] ?

Il demande une valeur entière, mais un tableau peut aussi être déclaré comme une variable !

Soyez plus précis.

un tableau est une variable avec le même nom mais un nombre différent

 
100yan:
comment écrire [i] ? Il me semble que si je le déclare comme une variable..., cela donne une erreur de compilation. Je ne comprends pas... Il demande une valeur entière, mais un tableau peut aussi être déclaré comme une variable ? !
Toute construction entre crochets [] doit avoir le type de données int.
 

Pouvez-vous me dire quelle est la signification de cette merde dans les journaux ? Comment puis-je l'éviter ? Le conseiller expert négocie avec cet indicateur, après une erreur, la transaction se fige jusqu'à ce que vous redémarriez le terminal, car le redémarrage du conseiller expert peut provoquer un nouveau crash.

22:39:53 +ZigZag_Levels CLJ1,M5 : uninit reason 3
22:39:53 Zigzag CLJ1,M5 : uninit reason 1

22:39:53 Zigzag CLJ1,M5 : supprimé

Peut-être est-ce parce que j'utilise le terminal sur un serveur distant et sur mon propre ordinateur en même temps ?

 
todem:

Bonjour à tous ! J'ai une question : dans cette fonction, pour deux positions (achat et vente), j'ai défini le stop-loss de sorte que pour la vente, SL=ouverture de l'achat + 18 pips, et vice versa pour l'achat :

бла-бла-бла...

Les prix d'ouverture des positions opposées sont obtenus à partir de la fonction :

бла-бла-бла...

Nous connaissons la fonction ModifyOrder comme une fonction standard de KIMIW, nous l'utilisons pour définir les stoploss calculés...

La question est la suivante : l'EA fixe des seuils d'arrêt uniquement pour une vente et non pour un achat. Qui pense cela ?


void SimpleLock(string sy="", int mn=-1) {
  double po, pp, ops1=0, ops2=0, opb;
  int    i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<=k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        po=MarketInfo(OrderSymbol(), MODE_POINT);
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_SELL) {
            opb=OrderStopLoss();                            // Значение стопа позиции до модификации = (0???)
            ops2=NormalizeDouble(OrderPrice(OP_BUY),Digits);
            if (ops2>0 && opb!=0) {
                ModifyOrder(-1, ops2+18*po, -1);
              }
            
          }
          if (OrderType()==OP_BUY) {
            opb=OrderStopLoss();
            ops1=NormalizeDouble(OrderPrice(OP_SELL),Digits);
            if (ops1>0 && opb!=0) {
                ModifyOrder(-1, ops1-18*po, -1);
              }
            
          }
        }
      }
    }
  }
}

Si l'arrêt n'est pas défini, la modification n'est pas appelée...

Si vous ne définissez pas de stop-loss pour une longue période, alors la modification n'est pas appelée.. :

double OrderPrice(int type) {
   double price;
   int i, k=OrdersTotal();
      
      for (i=0; i<k; i++) {
         if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if (OrderType()==type) {
            price=OrderOpenPrice();  // Значение цены открытия в списке ордеров терминала позиции с типом type и индексом i
            }
         }
      }
   return(price);  // Возвращает цену открытия последней в списке ордеров позиции с типом type и индексом не более k-1
}

Êtes-vous sûr que le prix d'ouverture de l'ordre requis est renvoyé ?