Dimensione del deposito iniziale - che cos'è? - pagina 9

 

Abbasso il vento glitch :)


Per misurare un angolo, è necessario un punto + datum e un punto in cui misurare l'angolo.


Per cominciare:

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

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

Prima le cose importanti:

Ecco un frammento di codice con un superamento dell'ordine. Il codice del trailing stop è preso da qui: 'Biblioteca di funzioni e consulenti esperti per 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());
         }
      }
   }
Restituisce 0, per la miseria!!!
 




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 , scrivi se hai bisogno di altro.

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




Scrivete se avete bisogno di qualcos'altro.

Grazie mille! Solo colpa mia - avevo un ciclo più alto con return(0), quindi si nascondeva e mi faceva male poco a poco.

Ho una domanda: avete un programma, dove inserisco la dimensione del lotto, specifico la coppia, e mi mostra quanti soldi (in rubli, per esempio) ho bisogno di comprare questo lotto, il valore del punto, ecc?

Solo ogni volta che si contano, per esempio, 1,3 lotti di GBPUSD, e poi 2,8 lotti di EURJPI si stanca un po'.

 
Swetten писал (а) >>

Grazie mille! Solo colpa mia - avevo un ciclo più alto con return(0), quindi si nascondeva e mi faceva male poco a poco.

Ho una domanda: avete un programma, dove inserisco la dimensione del lotto, specifico la coppia, e mi mostra quanti soldi (in rubli, per esempio) ho bisogno di comprare questo lotto, il valore del punto, ecc?

Solo che ogni volta che si contano per esempio 1,3 lotti di GBPUSD, e poi 2,8 lotti di EURJPI, diventa un po' noioso.

A GBPUSD, ha sorriso. All'EBUJPI, ho preso una patacca. Mi dispiace, non voglio dire nulla di male con questo.

 
E un'altra domanda: ci sono tre variabili. Di qualsiasi tipo. È possibile implementare la seguente condizione: se due variabili su tre corrispondono alla condizione così e così, allora fate così e così?
 
Da
Swetten писал (а) >>
Un'altra domanda: ci sono tre variabili. Di qualsiasi tipo. È possibile implementare la seguente condizione: se due variabili su tre corrispondono alla condizione così e così, allora fate così e così?

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

Consiglio di rinominare il topic in "Domande da Swetten" -)

 

sull'argomento =)

Ne sto usando uno seriamente =)sono due giorni che va avanti.

per praticare, 200 sterline.

per mts, un po' più serio, 700 sterline.

per i mts a lungo termine da 7.000 sterline

IMHO =)

 

Ecco un'altra buona domanda: ci sono dati come:

P1[a, b, passo]

P2[c, d, passo]

P3[e, f, passo]

P4[g, h, passo]

P5[i, j, passo].

Come posso scriverli in una volta sola in un file e poi leggerli da lì?

Ho fatto così:

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]);
                 }
             }
         }
È tutto scritto meravigliosamente, tranne che è tutto senza senso all'interno. Il libro di testo è un po' una seccatura, davvero! E come si scrivono e si leggono i dati come una tabella? E gli array come questo? E in generale? La biblioteca di Kim ha uno sguardo dentro.
 
Swetten писал (а) >>

Grazie mille! Solo colpa mia - avevo un ciclo più alto con return(0), quindi si nascondeva e mi faceva male poco a poco.

Ho una domanda: avete un programma, dove inserisco la dimensione del lotto, specifico la coppia, e mi mostra quanti soldi (in rubli, per esempio) ho bisogno di comprare questo lotto, il valore del punto, ecc?

Solo che ogni volta che si contano per esempio 1,3 lotti di GBPUSD, e poi 2,8 lotti di EURJPI, diventa un po' noioso.

C'è una calcolatrice del commerciante:)