[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 165

 
FelixFX:

merci

De nombreuses erreurs ont été trouvées lors de la compilation
 
RoniIron:

Excusez-moi...... le conseiller martingale, est-il possible d'y prescrire un stoploss ou n'est-ce pas possible. Merci.

La fonction OrderSend() a le stop loss comme l'un de ses paramètres. Et c'est elle qui fixe l'ordre. Par conséquent, nous calculons le niveau d'arrêt pour l'ordre dont nous avons besoin et nous l'entrons dans la fonction.
 
FelixFX:

la compilation a révélé beaucoup d'erreurs

Eh bien, il en sera ainsi - je vous ai prévenu que MES sous-routines sont impliquées ! Supprimez-les et remplacez-les par vos imprimantes avec GetLastError()
 
drknn:

Eh bien, il le sera - je vous ai dit que MES sous-programmes sont impliqués ! Supprimez-les et remplacez-les par vos imprimantes avec la requête GetLastError().

C'est facile à faire, si vous connaissez bien le mql. ) Je suis en train d'apprendre, donc pour moi c'est un peu difficile d'enlever toutes les choses inutiles et de ne laisser que les choses nécessaires.
 
// =================================================================================================
// ************************* Трейлинг рыночных ордеров *********************************************
// =================================================================================================


// =================  TrailingRyn() =============================================================
// функция осуществляет трейлинг рыночных ордеров 
// ----------------------------------------------
void TrailingRyn_b(int ryn_TrStop, int ryn_TrStep, int Proskalz, int MAGIC, bool WaitProfit,  bool UseTrailingSound) {
  string SMB=Symbol(); 
  int i;
  int MinLevel=MarketInfo(SMB,MODE_STOPLEVEL);//Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах   
  int SchBuy=SchBuy(MAGIC);
  int SchSell=SchSell(MAGIC);
  if(ryn_TrStop>=MinLevel && ryn_TrStep>0 && (SchBuy>0 || SchSell>0)){    
    for (i=OrdersTotal()-1;i>=0;i--){
      if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {Print("Ошибка № ",GetLastError()," при выборе ордер № ",i);}
      else {
        if (OrderSymbol()==SMB && OrderMagicNumber()==MAGIC){
          TrailingPositions_b(ryn_TrStop,ryn_TrStep,Proskalz,WaitProfit,UseTrailingSound);
        }
      }
    }
  }
 if(ryn_TrStop>=MinLevel && ryn_TrStep==0)
 Print("Трейлинг невозможен - ryn_TrStep==0");
} 
// =================================================================================================

//+------------------------------------------------------------------+
//| Сопровождение позиции простым тралом                             |
//+------------------------------------------------------------------+
void TrailingPositions_b(int ryn_TrStop, int ryn_TrStep, int Proskalz, bool WaitProfit, bool UseTrailingSound){
  if(OrderType()==OP_BUY){
    if(!WaitProfit || (Bid-OrderOpenPrice())>ryn_TrStop*Point){
      if (OrderStopLoss()<Bid-(ryn_TrStop+ryn_TrStep-1)*Point){
        ModifyStopLoss_b(Bid-ryn_TrStop*Point,UseTrailingSound);
      }
    }
  }
  if(OrderType()==OP_SELL){
    if(!WaitProfit || OrderOpenPrice()-Ask>ryn_TrStop*Point) {
      if(OrderStopLoss()>Ask+(ryn_TrStop+ryn_TrStep-1)*Point || OrderStopLoss()==0){
        ModifyStopLoss_b(Ask+ryn_TrStop*Point,UseTrailingSound);
      }
    }
  }
}

//+------------------------------------------------------------------+
//| Перенос уровня StopLoss                                          |
//| Параметры:                                                       |
//|   ldStopLoss - уровень StopLoss                                  |
//+------------------------------------------------------------------+
void ModifyStopLoss_b(double ldStopLoss, bool UseTrailingSound){
  bool fm=false;
  string NameTrallingSound  = "ok.wav";// Наименование звукового файла для трейлинга
  fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
  if(fm!=0 && fm!=-1){
    if(UseTrailingSound) { PlaySound(NameTrallingSound);}
  }   
  if(fm==0 || fm==-1) { Print("Ошибка № ",GetLastError()," при модификации ордера № ",OrderTicket());}
}
//+------------------------------------------------------------------+
 
VOLDEMAR:
Merci les gars.....
Comment iCustom est utilisé avec iCustom et un indicateur qui dessine une flèche à un certain point pour dire à l'EA d'ouvrir ......
Si iBands est un Ask > BBUP, c'est compréhensible mais qu'en est-il de l'objet qui peut ou non apparaître (comme la flèche) ? ?????.


Il faut tout de même regarder le code de l'indicateur, pour comprendre lequel des tampons contient la valeur de quelle ligne.

Si vous voulez entrer les paramètres de l'indicateur dans la fonction iCustom, alors les paramètres de l'indicateur doivent être ajoutés aux variables personnalisées de l'Expert Advisor. Sinon, l'EA ne comprendra pas les valeurs contenues dans les variables énumérées.

 
Bonjour, ne me donnez pas de coup de pied si je pose la mauvaise question, mais j'ai cherché partout sur le forum et sur Internet et je n'ai pas trouvé ce que je cherchais. La question est la suivante ! Est-il possible de créer une condition dans si (après le dernier StopLoss (dans le temps) devrait fermer par exemple 2 profit) jusqu'à ce qu'ils ne sont pas faire autre chose ... S'il est possible de faire un petit croquis en code, mais il est également possible de dessiner un schéma en mots - merci d'avance !
 
ruzzo:
Bonjour, ne me donnez pas de coup de pied si je pose la mauvaise question, mais j'ai fouillé tout le forum et l'Internet et je n'ai pas trouvé ce que je cherchais. La question est la suivante ! Est-il possible de créer une condition dans si (après le dernier StopLoss (dans le temps) devrait fermer par exemple 2 profit) jusqu'à ce qu'ils ne sont pas faire autre chose ... Si possible, une petite esquisse en code, mais vous pouvez simplement dessiner un schéma en mots, merci d'avance !


En général, eh bien, ce dont vous avez besoin n'est pas clair.

Une condition dans if() peut être insérée. Il peut être inséré après un événement quelconque. Mais qu'est-ce que cela signifie de fermer deux profits ? Et autre chose peut être fait. C'est tout.


if(условие){

// какой-то код 

}

else{

// какой-то код 

} 
 
drknn:


En fait, je ne comprends pas ce dont vous avez besoin.

Une condition dans if() peut être insérée. Il peut être inséré après un événement quelconque. Mais qu'est-ce que cela signifie de fermer deux profits ? Et autre chose peut être fait. Le fait est que...


Je comprends que d'abord la condition, et ensuite le code, mais je voulais créer une condition, j'ai obtenu StopLoss et travailler avec un autre lot, par exemple - jusqu'à ce que je ferme l'affaire avec deux profits - je ne veux simplement pas comparer le solde dans if - tout parce que si je compare le solde, et j'ai un ordre en attente avec une limite de temps - le lot modifié saute - parce que l'ordre expire avec le lot augmenté - peut-être que je ne creuse pas ?
 

Aidez-nous à comprendre.

J'ai décidé d'utiliser le MACD Sample et je n'arrive pas à comprendre ce qui ne va pas - quelle que soit la version, même la version native dans le terminal.

toutes les erreurs sont commises :

2011.02.28 23:01:53 MACD Sample EURUSD,M15 : Erreur d'ouverture de l'ordre d'achat: 130

Compte à 5 chiffres. 1:500, lot 0.1 ou 1, aucune différence, compte réel.

J'ai multiplié par 10 le SL et le TP, rien n'a changé, j'ai même changé plus, aucun résultat, je n'arrive pas à lui faire ouvrir quelque chose là ((

Le fait qu'il fonctionne clairement, si j'ouvre une affaire avec mes mains, alors il la transfère à la position sans perte et commence à chaluter, mais ne veut pas l'ouvrir par lui-même !

Qu'est-ce que je fais mal, je n'arrive pas à comprendre depuis une semaine ! ?

Raison: