[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 375

 
artmedia70:
Tiempo[número_bar];

Gracias. Intentaré recetarlo :)
 
nemo811:
¿Ha considerado el precio al que se abren sus órdenes (Ask o Bid)?

Le dije que abriera la orden al mismo precio, pero se abre 1-2 pips más tarde.
 
myrzila:

Te digo que prescribo una orden que se abre al mismo precio y se abre 1-2 pips más tarde.

Sí, algunas empresas de corretaje pueden utilizar posiciones con deslizamiento. Yo mismo no creía en ello hasta que lo vi con mis propios ojos. En ese momento mi amigo y yo estábamos haciendo scalping en una de las empresas de corretaje. La operación no duró más de un minuto en el mercado y se cerró inmediatamente. Como la gran mayoría de las transacciones se cerraban en el plus, no era rentable para las empresas de corretaje. Esta empresa de corretaje nos pagó lo que ganamos e introdujo el deslizamiento en las órdenes pendientes y el deslizamiento en la activación de las órdenes de parada que mataron todas nuestras operaciones. Así es como sucede. Por lo tanto, póngase en contacto con su empresa de corretaje y pregúnteles por qué no abre las órdenes al precio al que están fijadas.
 

¡Buenas tardes!

Volviendo a una pregunta que no pude resolver por mi cuenta. ¿Cómo puedo determinar mediante programación los depósitos/retiros de un periodo concreto?

Es decir, si se toma el periodo de negociación del 25 de noviembre y se repasan todas las órdenes de ese tiempo, se pueden determinar los depósitos/retiros de ese periodo. Y esta es la pregunta: ¿cómo se calcula?

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:

¡Buenas tardes!

Volviendo a una pregunta que no pude resolver por mi cuenta. ¿Cómo puedo determinar de forma programada los depósitos/retiros para un periodo específico?

Es decir, si se toma el periodo de negociación del 25 de noviembre y se repasan todas las órdenes de ese tiempo, se pueden determinar los depósitos/retiros de ese periodo. Y esta es la pregunta: ¿cómo se calcula?


Si OrderProfit() es mayor que cero - añadir, menor - retirar
 
Vinin:

Si OrderProfit() es mayor que cero - relleno, menor - retirada

Gracias. Es decir, es posible determinar qué llenados y retiradas fueron por separado...

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(); //снятия          
          }
       }
     }
 

¿Por qué la función de cálculo del lote máximo devuelve "0" para el instrumento #DD? Esto no siempre ocurre.

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:

Gracias. Es decir, ¡es posible identificar las recargas y las retiradas de forma individual!


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) ;  
 
}
¿Por qué la salida de errork que la función devuelve tiene un resultado nulo, cuál es el error?
 
nikelodeon:
¿Por qué la salida de errork que la función devuelve tiene un resultado nulo, cuál es el error?

//----------------------- подсчёт объема позиций----------------------------//
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) ;  
 
}