Le montant du dépôt initial - qu'est-ce que c'est ? - page 9

 

En bas avec le vent glitchy :)


Pour mesurer un angle, il faut un point + point de référence et un point sur lequel mesurer l'angle.


Pour commencer :

int cnt, total;
total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
iTicket=OrderTicket();
}

 
meta-trader2007 писал (а) >>

Pour commencer :

Voici un extrait de code avec un dépassement de commande. Le code du trailing stop est pris ici : Bibliothèque de fonctions et de conseillers experts pour le trailing stop / Yuri Dzyuban.

   int cnt, itotal;
   total=OrdersTotal();
   for(cnt=0;cnt<total;cnt++)
   {
   OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
   iTicket=OrderTicket();
   Comment("\nOrderTicket = ", iTicket);

   // проверяем переданные значения
   if ((iTicket==0) || (!OrderSelect(iTicket,SELECT_BY_TICKET)) || ((iTmFrme!=1) && (iTmFrme!=5) && (iTmFrme!=15) && (iTmFrme!=30) && (iTmFrme!=60) && (iTmFrme!=240) && (iTmFrme!=1440) && (iTmFrme!=10080) && (iTmFrme!=43200)) || (iMAPeriod<2) || (MAMethod<0) || (MAMethod>3) || (iApplPrice<0) || (iApplPrice>6) || (iShift<0) || (iIndent<0))
      {
      Comment("\nТрейлинг функцией TrailingByMA() невозможен из-за некорректности значений переданных ей аргументов.");
      return(0);
      } 

   double   dMA; // значение скользящего среднего с переданными параметрами
   
   // определим значение МА с переданными функции параметрами
   dMA = iMA(Symbol(),iTmFrme,iMAPeriod,iMAShift,MAMethod,iApplPrice,iShift);
         
   // если длинная позиция, и её стоплосс хуже значения среднего с отступом в iIndent пунктов, модифицируем его
   if (OrderType()==OP_BUY)
      {
      if ((OrderStopLoss()<dMA-iIndent*Point) && (dMA-iIndent*Point<Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point))
         {
         if (!OrderModify(iTicket,OrderOpenPrice(),dMA-iIndent*Point,OrderTakeProfit(),OrderExpiration()))
         Comment("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());
         }
      }
  
   // если позиция - короткая, и её стоплосс хуже (выше верхней границы канала или не определён, ==0), модифицируем его
   if (OrderType()==OP_SELL)
      {
      if (((OrderStopLoss()==0) || (OrderStopLoss()>dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point)) && (dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point>Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point))
         {
         if (!OrderModify(iTicket,OrderOpenPrice(),dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point,OrderTakeProfit(),OrderExpiration()))
         Print("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());
         }
      }
   }
Le rendement est de 0, pour l'amour du ciel ! !!
 




for(int cnt=0;cnt<OrdersTotal();cnt++){
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
iTicket=OrderTicket();
Comment("\nOrderTicket = ", iTicket);
// проверяем переданные значения
if ((iTicket==0) || ((iTmFrme!=1) && (iTmFrme!=5) && (iTmFrme!=15) && (iTmFrme!=30) && (iTmFrme!=60) && (iTmFrme!=240) && (iTmFrme!=1440) && (iTmFrme!=10080) && (iTmFrme!=43200)) || (iMAPeriod<2) || (MAMethod<0) || (MAMethod>3) || (iApplPrice<0) || (iApplPrice>6) || (iShift<0) || (iIndent<0))
{Comment("\nТрейлинг функцией TrailingByMA() невозможен из-за некорректности значений переданных ей аргументов."); return(0);}
// определим значение МА с переданными функции параметрами
double dMA = iMA(Symbol(),iTmFrme,iMAPeriod,iMAShift,MAMethod,iApplPrice,iShift);// значение скользящего среднего с переданными параметрами
// если длинная позиция, и её стоплосс хуже значения среднего с отступом в iIndent пунктов, модифицируем его
if (OrderType()==OP_BUY){
if ((OrderStopLoss()<dMA-iIndent*Point) && (dMA-iIndent*Point<Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)){
if (!OrderModify(iTicket,OrderOpenPrice(),dMA-iIndent*Point,OrderTakeProfit(),OrderExpiration()))
Comment("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());}}
// если позиция - короткая, и её стоплосс хуже (выше верхней границы канала или не определён, ==0), модифицируем его
if (OrderType()==OP_SELL){
if (((OrderStopLoss()==0) || (OrderStopLoss()>dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point)) && (dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point>Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point))
{if (!OrderModify(iTicket,OrderOpenPrice(),dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point,OrderTakeProfit(),OrderExpiration()))
Print("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());}}}




Swetten , écrivez si vous avez besoin d'autre chose.

 
meta-trader2007 писал (а) >>




Écrivez si vous avez besoin d'autre chose.

Merci beaucoup ! C'est seulement ma faute - j'avais un cycle plus élevé avec return(0), donc il se cachait et me faisait mal petit à petit.

J'ai une question : avez-vous un programme dans lequel j'entre la taille du lot, je spécifie la paire et il me montre combien d'argent (en roubles, par exemple) je dois acheter ce lot, la valeur du point, etc.

Chaque fois que vous comptez, par exemple, 1,3 lot de GBPUSD, puis 2,8 lots d'EURJPI, vous vous fatiguez un peu.

 
Swetten писал (а) >>

Merci beaucoup ! C'est seulement ma faute - j'avais un cycle plus élevé avec return(0), donc il se cachait et me faisait mal petit à petit.

J'ai une question : avez-vous un programme dans lequel j'entre la taille du lot, je spécifie la paire et il me montre combien d'argent (en roubles, par exemple) je dois acheter ce lot, la valeur du point, etc.

Chaque fois que vous comptez par exemple 1,3 lot de GBPUSD, puis 2,8 lots d'EURJPI, cela devient un peu fatigant.

A GBPUSD, il a souri. A l'EBUJPI, j'ai eu un pigeon. Je suis désolée, je ne pensais pas à mal en le faisant.

 
Et une autre question : il y a trois variables. De n'importe quel type. Est-il possible de mettre en œuvre la condition suivante : si deux variables sur trois correspondent à la condition untel ou untel, alors faites untel ou untel ?
 
De
Swetten писал (а) >>
Une autre question : il y a trois variables. De n'importe quel type. Est-il possible de mettre en œuvre la condition suivante : si deux variables sur trois correspondent à la condition untel ou untel, alors faites untel ou untel ?

bool a,b,c; //Переменные. True - удовлетворяют условию, False - не удовлетворяют.
int count; // Счетчик количества переменных, удовлетворяющих условию.
 
if(a==true)
 count++;
if(b==true)
 count++;
if(c==true)
 count++;
 
if(count>=2)
{
  //Делаем то-то
}

Je conseille de renommer le sujet en "Questions de Swetten" -)

 

sur le sujet =)

J' en utilise un sérieusement =) ça fait deux jours que ça dure.

pour pratiquer, 200 livres.

pour les mts, un peu plus sérieux, 700 livres.

pour les mts à long terme à partir de 7 000 livres

IMHO =)

 

Voici une autre bonne question : il y a des données comme :

P1 [a, b, pas]

P2 [c, d, étape]

P3 [e, f, étape]

P4 [g, h, pas]

P5 [i, j, étape].

Comment puis-je les écrire en une seule fois dans un fichier, puis les lire à partir de celui-ci ?

Je l'ai fait comme ça :

for(step = 1; step <= Dlina; stop++)
         {for(et = 1; it <= 20; et++)
             {for(i = 0; i <= min1 - 1; i++)
                 { FileWrite(file1, data0-0[i,it,stop]); 
                   FileWrite(file1, data0-1[i,it,stop]); 
                   FileWrite(file1, data0-2[i,it,stop]);
                   FileWrite(file1, data1-1[i,it,stop]); 
                   FileWrite(file1, data1-2[i,it,stop]); 
                   FileWrite(file1, data1-3[i,it,stop]);
                   FileWrite(file1, data2-0[i,it,stop]); 
                   FileWrite(file1, data2-1[i,it,stop]); 
                   FileWrite(file1, data2-2[i,it,stop]);
                   FileWrite(file1, data3-0[i,it,stop]); 
                   FileWrite(file1, data3-1[i,it,stop]); 
                   FileWrite(file1, data3-2[i,it,stop]);
                   FileWrite(file1, data4-1[i,it,stop]); 
                   FileWrite(file1, data4-2[i,it,stop]); 
                   FileWrite(file1, data4-3[i,it,stop]);
                 }
             }
         }
Tout est merveilleusement écrit, mais à l'intérieur, c'est n'importe quoi. Le manuel est aussi un peu une devinette de sorcier ! Et comment écrire et lire des données comme un tableau ? Et des tableaux comme celui-ci ? Et en général ? La bibliothèque de Kim a un regard.
 
Swetten писал (а) >>

Merci beaucoup ! C'est seulement ma faute - j'avais un cycle plus élevé avec return(0), donc il se cachait et me faisait mal petit à petit.

J'ai une question : avez-vous un programme dans lequel j'entre la taille du lot, je spécifie la paire et il me montre combien d'argent (en roubles, par exemple) je dois acheter ce lot, la valeur du point, etc.

Chaque fois que vous comptez par exemple 1,3 lot de GBPUSD, puis 2,8 lots d'EURJPI, cela devient un peu fatigant.

Il y a une calculatrice du négociant:)
Raison: