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

 
Hedin:


En forex casi todos los servidores son gratuitos.

Y lo que es más, casi todas las casas de corretaje tienen cuentas de demostración en las que se puede operar con dinero virtual en lugar de dinero real.

Gracias, ¿puede darme un enlace específico? No puedo buscar en Google. Gracias de nuevo.
 
artmedia70:
¿Qué es una LLAMADA DE MARGEN?
Un Margin Call es una condición que resulta en un cierre forzado de una posición.

Esto ocurre cuando el saldo de su cuenta (Equity) ha llegado a cero del margen requerido (Margin) por el importe de todas las posiciones abiertas.

La operación es automática. En algunas empresas el Margin Call se fija en el 30% de los Fondos Propios.

Es decir, [AccountFreeMargin() = AccountEquity() - Margin] ?

donde Margen -> total para todas las posiciones abiertas.




 
Guest77:
Gracias, ¿puede dar plz un enlace específico? No puedo buscar en Google. Gracias de nuevo.

Todo lo que necesitas hacer es descargar e instalar MetaTrader 4 desde cualquier broker.

Necesitas abrir una cuenta demo y ya estás listo para usarla. Todo es gratis. Puedes encontrar un corredor a través de Google, hay muchos.

 

Hola a todos. Me he enfrentado a un problema al escribir un EA, siento que el error está en algún lugar de la superficie, pero no puedo encontrarlo. Me gustaría que alguien me dijera qué hacer.

La esencia del problema: Me han pedido que añada un trailing stop en uno de los EAs de Igor Kim para varias posiciones simultáneamente. Lo he añadido todo, pero el resultado es malo :( El trailing stop siempre se mueve en los puntos TStop.Sell y TStop.Buy lejos de la oferta y la demanda, es decir, el precio sube, el trailing stop también sube, el precio baja - el trailing stop baja... No necesito llamar al equipo de telepatía, yo mismo añadiré el código :)

int start()
{
 if(GetProfitOpenPosInCurrency(Symbol(),-1,MagicNumber)>=ProfitToStartTral) //если прибыль в валюте депозита больше заданной в настройках
    {
     CloseLoss(Symbol(),-1,MagicNumber);//закрываем все убыточные позы советника по текущему символу
     start3();//запускаем трал
    }
  //бла-бла-бла, тут еще куча рабочего кода :)
}

Funciones definidas por el usuario:

void start3() 
 {
  if (ShowComment) {
    Comment(IIFs(AllSymbols, "AllSymbols  ", "")
           ,"Magic="+IIFs(Magic<0, "Любой", DoubleToStr(Magic, 0))+"  "
           ,IIFs(TSProfitOnly, "TSProfitOnly  ", "")
           ,"TStop.Buy="+DoubleToStr(TStop.Buy, 0)+"п  "
           ,"TStop.Sell="+DoubleToStr(TStop.Sell, 0)+"п  "
           ,"TrailingStep="+DoubleToStr(TrailingStep, 0)+"п  "
           );
  } else Comment("");

  string sy=IIFs(AllSymbols, "", NULL);
  SimpleTrailing(sy, -1, Magic);
 } 
//*********************************************************************//
void SimpleTrailing(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        po=MarketInfo(OrderSymbol(), MODE_POINT);
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_BUY) {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            if (!TSProfitOnly || pp-OrderOpenPrice()>TStop.Buy*po) {
              if (OrderStopLoss()<pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0) {
                ModifyOrder(-1, pp-TStop.Buy*po, -1);
              }
            }
          }
          if (OrderType()==OP_SELL) {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            if (!TSProfitOnly || OrderOpenPrice()-pp>TStop.Sell*po) {
              if (OrderStopLoss()>pp+(TStop.Sell+TrailingStep-1)*po || OrderStopLoss()==0) {
                ModifyOrder(-1, pp+TStop.Sell*po, -1);
              }
            }
          }
        }
      }
    }
  }
} 
//****************************************************
string IIFs(bool condition, string ifTrue, string ifFalse) {
  if (condition) return(ifTrue); else return(ifFalse);
}
 

Quiero saber si es posible pasar los parámetros especificados en el código del indicador (no los parámetros del propio indicador) a otro indicador para su procesamiento.

La segunda pregunta, ¿cómo pasar los parámetros del indicador al EA y cómo se comportará este EA en modo de prueba?

Gracias de antemano.

 

Lo estás explicando de forma muy enrevesada.

La forma más fácil de transferir a MT a través de GlobalVariable es como un portapapeles. Uno pone el otro lo toma.

Pero, hay muchas otras opciones, son según la situación. Como no hay situación, es difícil hablar de opciones. Se probará en el mismo personaje.

 
zhuki:

Lo estás explicando de forma muy enrevesada.

La forma más fácil de transferir a MT a través de GlobalVariable es como un portapapeles. Uno pone el otro lo toma.

Pero, hay muchas otras opciones, son según la situación. Como no hay situación, es difícil hablar de opciones. Se probará en el mismo personaje.


GlobalVariable no se encuentra en la ayuda de MT, ....

sobre las variantes. Por ejemplo, el cálculo es el siguiente: hay un indicador de zigzag, he añadido un código que define los patrones al código de zigzag, como If (condition) si la condición se cumple, la variable a =1, si no se cumple, a=0. Necesito pasar este valor de la variable a otro indicador y hacer lo siguiente en este caso si la variable en este indicador era igual a (a=1), si a=0. Se trata de pasar parámetros entre indicadores.

y, respectivamente, de la misma forma para pasar parámetros del indicador al Asesor Experto. Cuando lo pruebe en el Probador de Estrategias, ¿el Asesor Experto cargará el indicador para el cálculo y pasará los valores de la variable al EA? O dará error ya que la variable es inaccesible porque se encuentra en el entorno del indicador!

 

La misma pregunta. ¿Cómo puedo transferir datos de un indicador no estándar a otro?

 
zhuki:

Lo estás explicando de forma muy enrevesada.

La forma más fácil de transferir a MT a través de GlobalVariable es como un portapapeles. Uno pone el otro lo toma.

Pero hay muchas otras opciones, que dependen de la situación. Como no hay situación, es difícil hablar de opciones. Se probará en el mismo personaje.

¿No puedes llamarlo como el iMA estándar por el nombre corto, por ejemplo?
 
Abzasc:
¿No se puede llamar como el iMA estándar por el nombre corto, por ejemplo?

Se puede llamar, no hay errores, pero ¿cómo pasar el parámetro? Hago una llamada, pongo el parámetro entre paréntesis (que llamo), pero en la respuesta jura que dicho parámetro no existe en el indicador.
Razón de la queja: