[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 370

 
Boneshapper:

Lo tengo. Muchas gracias. Es una buena opción, pero no puedo probar el sistema con datos históricos. Así que quería prescribirlo automáticamente de alguna manera. Si tiene alguna otra sugerencia, hágamelo saber.
Para comprobar el historial debemos determinar la condición de cierre. Ganancias/pérdidas o duración de la posición, por ejemplo, no más de 3 días. Esto puede hacerse modificando la fecha de caducidad de una orden/posición mediante OrderModify.
 
paladin80:
Para probarlo en el historial tenemos que determinar la condición de cierre de la posición. Ganancias/pérdidas o duración de la posición, por ejemplo, no más de 3 días. Esto puede hacerse modificando la fecha de caducidad de la orden/posición mediante OrderModify.

Sí, resulta que vamos a tener una condición cercana - es la vida de la posición, de acuerdo, no más de 3 días. He leído sobre OrderModify pero todavía no lo entiendo. Intentaré hacerlo por la noche. Muchas gracias de nuevo por su respuesta, muy rápida:)
 

Lo siento, no está en el idioma, pero realmente lo necesito, si alguien sabe.

En Windows 7 algunos archivos se niegan a abrirse. Pulso "Abrir con...", selecciono un programa y NO aparece en la lista de selección de programas. ¿Alguien sabe cómo eliminar esta restricción? No lo tenía en XP. Los malditos sietes me están matando :(

Sospecho que hay que limpiar el registro. Concretamente, no puedo hacer doble clic en el formato FB2. CoolReader se ejecuta y todo está bien. se abre. doble clic para ejecutar el formato de archivo fb2 no quiere.

Ejecuta una búsqueda en el registro Utillitoy JV-16 (siempre se utiliza) - bueno, se encontró tantas entradas del registro que mencionan fb2, sólo el horror - incluso miedo de matar. ¿Qué hacer? Una búsqueda en Google no dio nada :(

 

¡Saludos!

Ayúdame a rehacer el código. El código no es nuevo, pero algo no me funciona.

Aquí está el código:

  *///-----------------Закрытие по истории в безубыток--------------------
   //---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- 
  Iteration = 0; // зануляем инерации перед их учетом в цикле по истории
  Sum_Loss = 0;  // суммарный убыток по этим итерациям

datetime 
Time_at_History_Current = 0,
Time_at_History_Previos = 0;     
 
 if(OrdersHistoryTotal() != 0)
   {
    for(int counter = OrdersHistoryTotal()-1; counter >= 0; counter--)
      {
       OrderSelect(counter, SELECT_BY_POS, MODE_HISTORY);
       if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
         {
          if(OrderType() == OP_BUY || OrderType() == OP_SELL)
            {
             if(OrderProfit() < 0) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера
                                   // для последующего его анализа при подсчете количества итераций
                {
                 double lastLoss = OrderProfit();
                 Sum_Loss=Sum_Loss+lastLoss;  // считаем общий убыток по закрытым подряд убыточным ордерам
                 Time_at_History_Current = OrderCloseTime();
                } 
             
             //Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS));
             //Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));
             
             if(Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными
               {
                Time_at_History_Previos = Time_at_History_Current ;
                Iteration++;
                //Print("Iteration at History в условии сравнения  = ",  Iteration);
               }   
             else // они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла
               {
                if(OrderProfit() >= 0)
                  break;
               }
            }
         }
      }
   }

if (Sum_Loss < 0.0) { // Имеем убыток по закрытым позам
  if (((AccountEquity() + Sum_Loss + (Sum_Loss * 0.25)) >= AccountBalance()) && (((totalSell > 0) && (totalBuy < 1)) || ((totalSell < 1) && (totalBuy > 0)))) { // Достигли безубытка
    // Здесь какой-то код, который необходимо выполнить при достижении безубытка
        CloseAllBuy();
           CloseAllSell();
           Sum_Loss = 0.0;
           
  
  }
}
//-----------------------------------------------------------------

He intentado abrir un bucle cuando se hace una operación negativa y después de una operación positiva, si tuviera una operación negativa, disminuiría mi saldo negativo por el beneficio de la última orden cerrada, que es superior a cero. Es decir, si la orden ha cerrado en un menos, empezamos a trabajar, si la siguiente operación en beneficio es más que una pérdida, cerramos, si en la siguiente operación han cerrado en más, pero este más no es más que un menos, en las órdenes anteriores, este más de un saldo negativo, y la siguiente orden comparamos con los nuevos indicadores que ya es menos, como antes hemos cerrado en un menos. Por eso tenemos un balance positivo.

 
drknn:

Lo siento, no está en el idioma, pero necesito saber si alguien lo sabe.

En Windows 7 algunos archivos se niegan a abrirse. Pulso "Abrir con...", selecciono un programa y NO aparece en la lista de selección de programas. ¿Alguien sabe cómo eliminar esta restricción? No lo tenía en XP. Los malditos sietes me están matando :(

Sospecho que hay que limpiar el registro. Concretamente, no puedo hacer doble clic en el formato FB2. CoolReader se ejecuta y todo está bien. se abre. doble clic para ejecutar el formato de archivo fb2 no quiere.

Ejecuta una búsqueda en el registro Utillitoy JV-16 (siempre se utiliza) - bueno, se encontró tantas entradas del registro que mencionan fb2, sólo el horror - incluso miedo de matar. ¿Qué hacer? Una búsqueda en Google no dio nada :(


Inicio - Todos los programas - Programas por defecto - Establecer asignaciones
 
drknn:

Lo siento, no está en el idioma, pero necesito saber si alguien lo sabe.

En Windows 7 algunos archivos se niegan a abrirse. Pulso "Abrir con...", selecciono un programa y NO aparece en la lista de selección de programas. ¿Alguien sabe cómo eliminar esta restricción? No lo tenía en XP. Los malditos sietes me están matando :(

Sospecho que hay que limpiar el registro. Concretamente, no puedo hacer doble clic en el formato FB2. CoolReader se ejecuta y todo está bien. se abre. doble clic para ejecutar el formato de archivo fb2 no quiere.

Ejecuta una búsqueda en el registro Utillitoy JV-16 (siempre se utiliza) - bueno, se encontró tantas entradas del registro que mencionan fb2, sólo el horror - incluso miedo de matar. ¿Qué hacer? Una búsqueda en Google no dio nada :(

http://rhpc.ru/topic/200/
 

¡¡¡¡Chicos... ayuda que sabe!!!!


La esencia de la estrategia: Entrada por estocástico (5,14,3) salida también por estocástico pero con otro periodo (5,3,3). No entiendo como hacer una salida por estocástico y no por señal inversa.
Tengo un problema y no tengo ni idea de cómo se puede solucionar, intentaré explicarlo.
Así que en el código, que he publicado, hay 2 funciones
//+------------------------------------------------------------------+
//| preparar array de tickets para cerrar |
//+------------------------------------------------------------------+
void PrepareTicketsToClose(int signal, bool Revers, int & ticketsClose[][2], double & lots[],double arrayTickets[][9])
{
int size=ArrayRange(arrayTickets,0);
//----
if (size==0) return;

int i,type,ticket,closeSize;
for (i=0;i<size;i++)
{
type=arrayTickets[i][1];
// si el tipo de orden no es una orden de mercado, entonces salta
si (type>OP_SELL) continúa;

si (Reverses) // invierte el tipo de orden de mercado
{
si (type==OP_BUY) type=OP_SELL; si no type=OP_BUY;
}

// aquí decidimos para cada orden abierta su destino
// dejarla en el mercado o añadirla a la matriz al cierre
si (type==OP_BUY)
{
//
// código que permite dejar la compra

// como ejemplo
si (signal==OP_BUY) continuar;
}

if (type==OP_SELL)
{
//
//código que permite seguir vendiendo

//como ejemplo
if (signal==OP_SELL) continue;
}


closeSize=ArrayRange(ticketsClose,0);
ArrayResize(ticketsClose,closeSize+1);
ArrayResize(ticketsClose,closeSize+1);
ticketsClose[closeSize][0] = arrayTickets[i][0]; // ticket #
ticketsClose[closeSize][1] = arrayTickets[i][1] // tipo de orden

// aquí especificamos cuántos lotes cerrar
lotes[closeSize] = arrayTickets[i][2]; // volumen a cerrar
// es posible cerrar parcialmente, entonces hay que reescribir la línea anterior
}
//----
return;
}

//+------------------------------------------------------------------+
//| Cierra las órdenes con los tickets especificados |
//+------------------------------------------------------------------+
void CloseMarketOrders(int ticketsArray[][2], double lotsArray[])
{
//----
int i,size=ArrayRange(ticketsArray,0);
if (size==0) return;

int ticket,type;
double lots;
¡bool res;

int total=OrdersTotal();

for (i=0;i<size;i++)
{
ticket = ticketsArray[i][0];
type = ticketsArray[i][1];
lots = lotsArray[i];
RefreshRates(); // por si acaso se actualiza el entorno del mercado

// bloque de cierre de compra
if (type==OP_BUY)
{
res = OrderClose(ticket,lots,Bid,Slippage,Orange);
if (!¡res)
{
Print("Falló el cierre de la orden de compra #",ticket,"! Error #",GetLastError());
// más gestión de errores, escriba usted mismo
}
}

// bloque de cierre de ventas
if (type==OP_SELL)
{
res = OrderClose(ticket,lots,Ask,Slippage,Orange);
if (!res)
{
Print("Failed to close sell order #",ticket,"! Error #",GetLastError());
// más gestión de errores, escriba usted mismo
}
}

}
//----
return;
}

La función void PrepareTicketsToClose(int signal, bool Revers, int & ticketsClose[][2], double & lots[],double arrayTickets[][9]) necesita pasar una condición para decidir si la orden debe cerrarse o no...
He intentado poner condiciones pero nada funciona....
¿Puede alguien mirar y ver si hay un error en estas funciones o lo he estropeado....
Archivos adjuntos:
osc_test.mq4  37 kb
 
¿Puede la oferta ser igual a 0 en un flujo de ticks? (a veces) durante una sesión de negociación
 
tara:

Inicio - Todos los programas - Programas por defecto - Establecer asignaciones

Esta operación conduce a una ventana de selección de programas. Especifica un programa y no aparece allí.
 

Restaurar las asociaciones de exe no ayudó - el kool-reader es un exe-reader. Pensé que podría ayudar. Lástima. ¿Hay algo más? Allí tienen un enlace a otras extensiones de archivo, pero no a fb2.