Tamaño del depósito inicial: ¿qué es? - página 9

 

Abajo el viento de los fallos :)


Para medir un ángulo, se necesita un punto + dato y un punto en el que medir el ángulo.


Para empezar:

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

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

Para empezar:

Aquí hay un fragmento de código con un exceso de pedido. El código del trailing stop está tomado de aquí: Biblioteca de Funciones y Asesores Expertos para 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());
         }
      }
   }
Devuelve 0, ¡¡¡por el amor de Dios!!!
 




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 , escribe si necesitas algo más.

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




Escribe si necesitas algo más.

¡Muchas gracias! La culpa es mía: tenía un ciclo más alto con return(0), por lo que se escondía y me perjudicaba poco a poco.

Tengo una pregunta: ¿tienen un programa en el que introduzco el tamaño del lote, especifico el par y me muestra cuánto dinero (en rublos, por ejemplo) necesito para comprar este lote, el valor en puntos, etc.?

Cada vez que cuenta, por ejemplo, 1,3 lotes de GBPUSD, y luego 2,8 lotes de EURJPI se cansa un poco.

 
Swetten писал (а) >>

¡Muchas gracias! La culpa es mía: tenía un ciclo más alto con return(0), por lo que se escondía y me perjudicaba poco a poco.

Tengo una pregunta: ¿tienen un programa en el que introduzco el tamaño del lote, especifico el par y me muestra cuánto dinero (en rublos, por ejemplo) necesito para comprar este lote, el valor en puntos, etc.?

Cada vez que cuentas por ejemplo 1,3 lotes de GBPUSD, y luego 2,8 lotes de EURJPI, se hace un poco pesado.

En el GBPUSD, sonrió. En el EBUJPI, caí con una pataleta. Lo siento, no quiero decir nada malo.

 
Y una pregunta más: hay tres variables. De cualquier tipo. ¿Es posible aplicar la siguiente condición: si dos variables de tres corresponden a la condición tal y tal, entonces haz tal y tal?
 
Desde
Swetten писал (а) >>
Una pregunta más: hay tres variables. De cualquier tipo. ¿Es posible aplicar la siguiente condición: si dos variables de tres corresponden a la condición tal y tal, entonces haz tal y tal?

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

Aconsejo cambiar el nombre del tema a "Preguntas de Swetten" -)

 

sobre el tema =)

He estado usando uno de ellos en serio =) ya lleva dos días.

para practicar, 200 libras.

para mts, un poco más serio, 700 libras.

para mts de larga duración a partir de 7 000 libras

IMHO =)

 

Aquí hay otra buena pregunta: hay datos como:

P1[a, b, paso]

P2[c, d, paso]

P3[e, f, paso]

P4[g, h, paso]

P5[i, j, paso].

¿Cómo puedo escribirlos de una sola vez en un archivo y luego leerlos desde allí?

Lo hice así:

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]);
                 }
             }
         }
Todo está maravillosamente escrito, pero es un sinsentido por dentro. El libro de texto también es un poco como un mago. ¿Y cómo se escriben y leen los datos como una tabla? ¿Y matrices como esta? ¿Y en general? La biblioteca de Kim tiene una mirada en ella.
 
Swetten писал (а) >>

¡Muchas gracias! La culpa es mía: tenía un ciclo más alto con return(0), por lo que se escondía y me perjudicaba poco a poco.

Tengo una pregunta: ¿tienen un programa en el que introduzco el tamaño del lote, especifico el par y me muestra cuánto dinero (en rublos, por ejemplo) necesito para comprar este lote, el valor en puntos, etc.?

Cada vez que cuentas por ejemplo 1,3 lotes de GBPUSD, y luego 2,8 lotes de EURJPI, se hace un poco pesado.

Hay una calculadora para comerciantes:)
Razón de la queja: