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

 
Boneshapper:

Lorsque j'écris ceci, je n'écris pas Flag=0 devant la condition, car alors il sera mis à jour chaque fois avant une transaction et sera toujours 0. Si nous ne spécifions pas de valeur, par exemple juste int Flag, le programme lui attribuera 0, n'est-ce pas ?

Je vous ai écrit un code dans lequel Flag est à l'extérieur de la fonction de démarrage, pas à l'intérieur. Si vous le mettez à l'intérieur, il est inutile.
 
Roger:

Bizarre, le code fonctionne. Peut-être que tu l'as mis au mauvais endroit ?
J'ai compris que la valeur de Flag était donnée à l'intérieur du if, et pourquoi il la perdait à la sortie de celui-ci. J'ai mis la variable de type static int Flag. Tout fonctionne maintenant.
 
Roger:

Je vous ai écrit un code dans lequel Flag est à l'extérieur de la fonction de démarrage, pas à l'intérieur. Si vous le mettez à l'intérieur, il est inutile.

Désolé, j'ai écrit une réponse, mais je n'ai pas vu votre réponse.
Oui, oui, vous avez raison. C'est exactement mon erreur. Mais la solution était d'utiliser Static.

Merci beaucoup pour tout.

 

Bonne nuit !

Pouvez-vous me dire s'il existe une fonction

int start()
{
OrderSend (Symbol(), OP_SELL, Loot,Bid, 50, SL, TP,NULL,1001,0,L) ;
if (OrderSelect(1001, SELECT_BY_TICKET)== true)
int Ticket = OrderTicket () ;
Alert ("Ticket =",Ticket) ;
OrderClose(Ticket,Loot,Ask,50,R) ;
}

Je ne comprends pas bien comment utiliser le paramètre magique dans la fonction ordersend pour rechercher une commande avec ce numéro ?

Et quand vous utilisez la fonction

bool OrderSelect( int index, int select)
Option SELECT_BY_TICKET, quel indice devons-nous définir ?

 

Pour utiliser un magicien, il faut d'abord l'installer, comme le vôtre, puis vérifier sa présence lorsque vous faites le tour...

int start()
{
OrderSend (Symbol(), OP_SELL, Loot,Bid, 50, SL, TP,NULL,1001,0,L);
//...
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
if(OrderMagic()==1001)
{

Alert ("Ticket =",OrderTicket()); 
OrderClose(OrderTicket(),Loot,Ask,50,R); 
}}}
 

Salut à tous ! !!

J'ai une question : Est-il possible d'accéder à l'historique des transactions à partir d'un Conseiller Expert (MQL4) ?

À savoir, que l'opération précédente n'était pas rentable et que la précédente était rentable, et ainsi de suite pour 10 opérations dans l'histoire ?

C'est nécessaire pour MM, car le conseiller expert a une série de transactions rentables après une transaction à forte perte.

J'ai une idée : après une transaction perdante, commencez à augmenter votre position, par exemple, dans trois ou cinq transactions consécutives et attendez la prochaine transaction.

et attendre la prochaine transaction perdante.

 

Ne touchez pas tout le monde, ils sont encore endormis, c'est samedi après tout.

L'accès peut être organisé, cherchez dans la base de code les EAs avec le mot de contrôle "martingale" (martingale).

 
Tatar:

Salut à tous ! !!

J'ai une question : Est-il possible d'accéder à l'historique des transactions à partir d'un conseiller expert (MQL4) ?

À savoir, que l'opération précédente n'était pas rentable et que la précédente était rentable, et ainsi de suite pour 10 opérations dans l'histoire ?

C'est nécessaire pour MM, car le conseiller expert a une série de transactions rentables après une transaction à forte perte.

J'ai une idée : après une transaction perdante, commencez à augmenter votre position, par exemple, dans trois ou cinq transactions consécutives et attendez la prochaine transaction.

une transaction perdante.


Bien sûr, c'est possible. Regardez ici - vous pouvez prendre la base pour vous-même et l'adapter à vos conditions commerciales.

Voici un exemple d'organisation des positions en fonction des résultats du dernier ordre clôturé (le plus récent dans l'historique des ordres - c'est ainsi qu'il est organisé dans mon système).

//---Поиск последнего отработавшего ордера для открытия очередной позиции ---
   
   for (orderIndex = (OrdersHistoryTotal() - 1); orderIndex >= 0; orderIndex--)
   {   
      if (!OrderSelect(orderIndex, SELECT_BY_POS, MODE_HISTORY))
      {
         Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
         continue;
      }
   
      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))
      {
         continue;
      }
      
        
   //-------------------------Принимаем в расчет только ордер, закрытый недавно-----------------------
if(time<OrderCloseTime())     //(сравниваем его с хранящимся в пероеменной time) 
  {
    time=OrderCloseTime();     //если время закрытия ордера больше - ложим его в переменную
         
         
     
         int lastType = OrderType();
         double lastLots = OrderLots();
         double lastProfit = OrderProfit() + OrderSwap();
         
        // Print ("lastProfit = ", NormalizeDouble(lastProfit, 1));
         
       
         
         // Анализ только что закрывшегося ордера
      
         if (lastProfit >= 0.0)
         {.... Здесь действия, при положительном профите ордера...
 .....
......
......
 
 
artmedia70:

double iMA( string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)

Calcul de la moyenne mobile.
Paramètres :
symbole - Symbole nom du symbole, sur les données duquel l'indicateur sera calculé. NULL signifie le symbole actuel.
cadre temporel - Période. Peut être l'une des périodes du graphique. 0 signifie la période du graphique actuel.
période - Période de calcul de la moyenne pour le calcul de la moyenne mobile.
ma_shift - Décalage de l'indicateur par rapport au graphique des prix.
ma_méthode - Méthode de calcul de la moyenne. Peut être n'importe quelle valeur des méthodes de moyenne mobile.
prix appliqué - Prix utilisé. Peut être l'une des constantes de prix.
équipe - Index de la valeur obtenue à partir du tampon de l'indicateur (décalage par rapport à la barre actuelle du nombre de périodes en arrière spécifié).


Comme vous le voyez, ma_shift est un nombre entier (nombre de barres pour décaler la ligne МАшки vers la droite ou vers la gauche). Et +/-0,21% est double, donc cela ne fonctionnera pas.

Est-ce que je comprends ce que vous voulez ?

Vous comprenez tout correctement. C'est juste que Rumus (Forex Club) a une telle possibilité et cette "enveloppe" est la base de TS "Intraday Conservative Scalping". Je voulais faire la même chose avec MT4. Mais comme vous l'avez expliqué, ce n'est pas le cas :)

 

Rimlyanin:

Vous comprenez tout correctement. C'est juste que Rumus (Forex Club) a une telle opportunité et cette "enveloppe" est la base du TS "Conservative Intraday Scalping". Je voulais faire la même chose avec MT4. Mais comme vous l'avez expliqué ce n'est pas le destin :)

Vous êtes incompris.

Si vous avez besoin d'une enveloppe, la MA est déplacée de haut en bas.

Le MA est un déplacement vers la gauche, vers la droite (comme dans Alligator).