[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 375

 
artmedia70:
Temps [nombre_barre] ;

Merci ! Je vais essayer de le prescrire :)
 
nemo811:
Avez-vous considéré le prix auquel vos ordres s'ouvrent (Ask ou Bid) ?

Je vous ai dit d'ouvrir l'ordre au même prix, mais il est ouvert 1-2 pips plus tard.
 
myrzila:

Je vous le dis, je prescris qu'un ordre s'ouvre au même prix, mais il s'ouvre 1-2 pips plus tard.

Oui, certaines sociétés de courtage peuvent utiliser des positions avec slippage. Je n'y croyais pas moi-même jusqu'à ce que je le voie de mes propres yeux. À cette époque, mon ami et moi faisions du scalping dans une des sociétés de courtage. L'opération n'a pas duré plus d'une minute sur le marché et a été immédiatement conclue. Comme la grande majorité des transactions étaient conclues dans le plus, ce n'était pas rentable pour les sociétés de courtage. Cette société de courtage nous a payé ce que nous gagnions et a introduit le slippage sur les ordres en attente et le slippage sur le déclenchement des ordres stop qui ont tué toutes nos transactions. C'est comme ça que ça se passe. Contactez donc votre société de courtage et demandez-lui pourquoi vous n'ouvrez pas les ordres au prix auquel ils sont fixés.
 

Bonjour !

Retour à une question que je n'ai pas réussi à résoudre tout seul. Comment puis-je déterminer par programme les dépôts/retraits pour une période spécifique ?

Autrement dit, si vous prenez la période de négociation du 25 novembre et que vous passez en revue tous les ordres de cette période, vous pouvez déterminer les dépôts/retraits pour cette période. Et voici la question : comment calculer ?

extern string            DayX="25.11.2011 00:00";   

if(TimeCurrent()>StrToTime(DayX)) //если текущее время старше момента начала периода
     {
      for(i=0; i<StrToTime(OrdersHistoryTotal()); i++)
       {
         if(OrderOpenTime()<StrToTime(DayX)) continue;
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()==6)
          {
            jjjj=+ //а вот здесь загвоздка, что-же суммировать? профит по OrderType()==6????????
          }
       }
     }
 
forexnew:

Bonjour !

Revenons à une question que je n'ai pas réussi à résoudre tout seul. Comment puis-je déterminer par programme les dépôts/retraits pour une période spécifique ?

Autrement dit, si vous prenez la période de négociation du 25 novembre et que vous passez en revue tous les ordres de cette période, vous pouvez déterminer les dépôts/retraits pour cette période. Et voici la question : comment calculer ?


Si OrderProfit() est supérieur à zéro - ajouter, inférieur - retirer
 
Vinin:

Si OrderProfit() est supérieur à zéro - remplissage, inférieur - retrait

Merci ! C'est-à-dire qu'il est possible de déterminer les remplissages et les retraits distincts !

extern string            DayX="25.11.2011 00:00";   

if(TimeCurrent()>StrToTime(DayX)) //если текущее время старше момента начала периода
     {
      for(i=0; i<StrToTime(OrdersHistoryTotal()); i++)
       {
         if(OrderOpenTime()<StrToTime(DayX)) continue;
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()==6 && OrderProfit()>0)
          {
            Profit1=+OrderProfit(); //доливки
          }

         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()==6 && OrderProfit()<0)
          {
            Profit2=+OrderProfit(); //снятия          
          }
       }
     }
 

Pourquoi la fonction de calcul du lot maximum retourne-t-elle "0" pour l'instrument #DD ? Ce n'est pas toujours le cas.

double MaxmaxLots(int cmd) 
{
    double result = 0;
    double lotStep = MarketInfo(SymbolMax[nnnn], MODE_LOTSTEP);
    double v = MarketInfo(SymbolMax[nnnn], MODE_MINLOT);
    double mult = 100;
    
    while (true) {
        if (AccountFreeMarginCheck(SymbolMax[nnnn], cmd, v + lotStep * mult) > 0) { 
            v = v + lotStep * mult;
        } else {
            mult = mult / 10;
            
            if (mult < 1) {
                if (AccountFreeMarginCheck(SymbolMax[nnnn], cmd, v) > 0) {  
                    result = v;
                }
                break;
            }
        }
    }
    
    return(result);
}    
 
forexnew:

Merci ! C'est-à-dire qu'il est possible d'identifier quelles recharges et quels retraits ont été effectués individuellement !


extern string            DayX="25.11.2011 00:00";   

if(TimeCurrent()>StrToTime(DayX)) //если текущее время старше момента начала периода
     {
      for(i=0; i<StrToTime(OrdersHistoryTotal()); i++)
       {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)=false) continue;
         if(OrderOpenTime()<StrToTime(DayX)) continue;
         if(OrderType()!=6) continue;

         if(OrderProfit()>0)
          {
            Profit1=+OrderProfit(); //доливки
          }
         else 
          {
            Profit2=+OrderProfit(); //снятия          
          }
       }
     }
 
int start()

  {
  DrowDownAlert=iCustom(NULL, 0, "Equity_v7",4,0);  
   

 double a=TotalLots(0);
 double b=TotalLots(1);
  Comment (a,b);
  return(0);
  }

//----------------------- подсчёт объема позиций----------------------------//
void TotalLots(bool zet)
{
   double total=0,total1=0;
   int slippage=20;
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
      if (OrderType()==OP_BUY ) total=total+OrderLots();
      if (OrderType()==OP_SELL) total1=total1+OrderLots();
   }
 if (zet==0) return (total); else return (total1) ;  
 
}
Pourquoi l'errork indique-t-il que le retour de la fonction a un résultat nul, quelle est l'erreur ?
 
nikelodeon:
Pourquoi l'errork indique-t-il que le retour de la fonction a un résultat nul, quelle est l'erreur ?

//----------------------- подсчёт объема позиций----------------------------//
int TotalLots(bool zet)
{
   double total=0,total1=0;
   int slippage=20;
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
      if (OrderType()==OP_BUY ) total=total+OrderLots();
      if (OrderType()==OP_SELL) total1=total1+OrderLots();
   }
 if (zet==0) return (total); else return (total1) ;  
 
}