[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 - 5. - page 155

 

J'ai une variable externe externe dans ma carte. Si je l'attache à deux paires différentes et que je modifie cette externe sur l'une d'entre elles, elle change également sur l'autre pour une raison quelconque(

Comment les séparer ? J'ai trouvé une solution avec les paramètres de type chaîne - j'ajoute un nom de symbole à la fin de l'initialisation. Mais qu'en est-il des entiers et des dubels ?

---

une autre question sur les fonctions de Kim.

il a

//| sy - nom de l'instrument ("" - tout symbole, |
//| NULL - symbole actuel) |
//| op - opération ( -1 - toute position) |
//| mn - MagicNumber ( -1 - toute magie) |
//+----------------------------------------------------------------------------+
void SimpleTrailing(string sy="", int op=-1, int mn=-1)

c'est-à-dire que si j'appelle SimpleTrailing(), la fonction fonctionne pour toutes les paires

mais si j'appelle SimpleTrailing(NULL), alors cela ne fonctionne que pour celui qui a la chouette sur son graphique ?

Est-ce une fonctionnalité non documentée ou quoi ? Je n'ai pas trouvé de référence à NULL dans la fonction.

ou est-ce que SimpleTrailing(NULL) et SimpleTrailing() sont la même chose ?

 
Omm:

Question fictive. Il y a des variables externes dans la carte. Si je la relie à deux paires différentes et que je modifie cette externe sur l'une d'elles, elle change également sur l'autre pour une raison quelconque(

J'ai trouvé une solution pour les paramètres de type chaîne - j'ajoute un nom de symbole à la fin de la fonction pendant l'initialisation.

---

Une autre question sur les fonctions de Kim.


c'est-à-dire que si j'appelle SimpleTrailing(), alors la fonction fonctionne pour toutes les paires

mais si j'appelle SimpleTrailing(NULL), alors cela ne fonctionne que pour la paire avec la chouette ?

Est-ce une fonctionnalité non documentée ou quoi ? Je n'ai pas trouvé de référence à NULL dans la fonction.

ou SimpleTrailing(NULL) et SimpleTrailing() sont-ils la même chose ?

1. Vous dites l'impossible ! - Ce qui signifie que vous devez dire quelque chose de "faux". Je peux supposer que l'EA n'utilise pas l'identifiant - OrderMagicNumber().

2. J'ai regardé le code - quelque chose me dit que l'utilisation de SimpleTrailing() sera identique à SimpleTrailing(NULL). C'est à vous de le vérifier. Et pour que la fonction fonctionne avec un outil graphique, appelez-la comme suit : SimpleTrailing (Symbol()).

 

1. cette EA http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=42

La magie est formellement présente (également dans extern pour une raison quelconque), mais je ne comprends pas comment la faire fonctionner.

J'essaie juste d'ajouter Breakeven et Trawl.

2. la question est résolue.

Je l'ai trouvé dans un autre f-fi if (sy=="0") sy=Symbol() ;

Je suppose que l'auteur a oublié de l'ajouter à celui-ci.

 

Ce dont j'ai besoin, c'est de la fonction Breakeven https://forum.mql4.com/ru/11287/page55#11315.

ne fonctionnent qu'une seule fois à une position particulière d'un symbole particulier

Que dois-je modifier dans la véranda ?

if(ExistPositions(Symbole() )
{
for (int i=0 ; i<OrdersTotal() ; i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
si(OrderSymbol()==Symbol() )
MovingInWL(Symbole())

}

}

 

Est-ce que vous avez une fonction. Il y a plusieurs commandes de volume différent.

Par exemple, commande1=0.1, commande2=0.2, commande3=0.3, commande4=0.4 - un total de 1 lot.

À un moment donné, je dois fermer une partie des ordres pour le montant total d'un certain lot.

Par exemple, je dois fermer 0,5 lot. Nous avons donc besoin d'une fonction qui fermerait l'ordre 4=0,4 et le reste, par exemple, de l'ordre 3. Ou l'ordre 1, l'ordre 2 et le reste de l'ordre 3.

 
Omm:

Ce dont j'ai besoin, c'est de la fonction Breakeven https://forum.mql4.com/ru/11287/page55#11315.

ne fonctionnent qu'une seule fois à une position particulière d'un symbole particulier

Que dois-je réparer dans la véranda ?

Cette fonction dispose d'un contrôle pour le déclenchement unique - pas besoin d'inventer quoi que ce soit :

    if (ExistPositions (Symbol(), -1, Magic))
    {MovingInWL (Symbol(), -1, Magic);}

Et la fonction MovingInWL() devrait être un peu modifiée :

void MovingInWL (string sy = "", int op = -1, int mn = -1)
{
    double po, pp, ld_BU;
    int    i, k = OrdersTotal();
//----
    if (sy = "0") sy = Symbol();
    for (i = k - 1; i >= 0; i--)
    {
        if (!OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue;
        if (sy != "") if (OrderSymbol() != sy) continue;
        if (mn >= 0) if (mn != OrderMagicNumber()) continue;
        po = MarketInfo (OrderSymbol(), MODE_POINT);
        if (OrderType() == OP_BUY)
        {
            //---- Это условие выполняется однократно (пока БУ не установлен)
            if (OrderStopLoss() - OrderOpenPrice() < LevelWLoss * po)
            {
                pp = MarketInfo (OrderSymbol(), MODE_BID);
                if (pp - OrderOpenPrice() > LevelProfit * po)
                {
                    ld_BU = NormalizeDouble (OrderOpenPrice() + LevelWLoss * po, MarketInfo (OrderSymbol(), MODE_DIGITS));
                    ModifyOrder (-1, ld_BU, -1);
                    continue;
                }
            }
        }
        else if (OrderType() == OP_SELL)
        {
            //---- Это условие выполняется однократно (пока БУ не установлен)
            if (OrderStopLoss() == 0 || OrderOpenPrice() - OrderStopLoss() < LevelWLoss * po)
            {
                pp = MarketInfo (OrderSymbol(), MODE_ASK);
                if (OrderOpenPrice() - pp > LevelProfit * po)
                {
                    ld_BU = NormalizeDouble (OrderOpenPrice() - LevelWLoss * po, MarketInfo (OrderSymbol(), MODE_DIGITS));
                    ModifyOrder (-1, ld_BU, -1);
                }
            }
        }
    }
//----
}
 

Aidez-moi à modifier la fonction, dans l'indicateur High Low de la bougie hebdomadaire, cela ressemble à ceci

si (TimeDay(Time[i])!=TimeDay(Time[i+1])
{
si(TimeDayOfWeek(Time[i])==1)

J'ai besoin du High Low du chandelier mensuel. Merci.

 

TarasBY, ça ne marche pas comme ça.

Dans e-TFL_V2, j'ajoute ces deux lignes à start() et à la fonction MovingInWL elle-même.

Si plusieurs positions sont ouvertes, le seuil de rentabilité n'est fixé que sur l'une d'entre elles. A chaque tick, il essaie de le refaire.

Dès qu'une position de Breakeven est fermée, il la fixe sur la suivante.

Comme je l'ai remarqué dans le premier message, le seuil de rentabilité est le même pour tous les symboles, même si j'ai défini des chiffres différents dans la fenêtre des paramètres de l'EA.

Je ne sais pas où se trouve la vérification du déclenchement unique ?

p.s. merci pour la fonction corrigée. je la teste sur 5 chiffres, mais je pense que la plupart des fonctions de kim's fonctionnent de toute façon.

p.s.s. Je l'ai fait tourner pendant un moment. Ça semblait fonctionner. c'était le bug de MovingInWL. merci encore. je me bats avec depuis deux jours maintenant ;))

p.s.s. Je ne comprends pas pourquoi Magic devrait être déplacé vers les paramètres externes de l'EA ?

 
Comment créer mon propre serveur pour Metatrader, c'est-à-dire un serveur auquel une autre personne de mon mt peut se connecter ?
 
Omm:

TarasBY, ça ne marche pas comme ça.

Dans e-TFL_V2, j'ajoute ces deux lignes à start() et à la fonction MovingInWL elle-même.

Si plusieurs positions sont ouvertes, le seuil de rentabilité n'est fixé que sur l'une d'entre elles. A chaque tick, il essaie de le refaire.

Dès qu'une position de Breakeven est fermée, il la fixe sur la suivante.

Comme je l'ai remarqué dans le premier message, le seuil de rentabilité est le même pour tous les symboles, même si j'ai défini des chiffres différents dans la fenêtre des paramètres de l'EA.

Je ne sais pas où se trouve la vérification du déclenchement unique ?

p.s. merci pour la fonction corrigée. je la teste sur 5 chiffres, mais je pense que la plupart des fonctions de kim's fonctionnent de toute façon.

p.s.s. Je l'ai fait tourner pendant un moment. Ça semblait fonctionner. c'était dans le bug de MovingInWL. merci encore. je me bats avec depuis deux jours maintenant ;))

p.s.s. Je ne comprends pas pourquoi Magic devrait être déplacé vers les paramètres externes de l'EA ?

Je ne comprends pas pourquoi Magic doit être déplacé vers les paramètres externes, il peut être changé, ce qui me permet de mettre le même EA sur différentes paires et sur différents graphiques (si je veux la personnalisation).
P.S. Les conditions de vérification d'une seule installation dans une BU sont indiquées dans mon message précédent.
Raison: