FUERTES: Para ayudar a los principiantes - página 7

 
TYRBO:
¿Alguien tiene algún consejo sobre la forma correcta?
¿Es demasiado perezoso para leer el manual?
 
TYRBO:
¿Alguien tiene algún consejo sobre cómo hacerlo bien?

Le falta un precio límite en la solicitud,

  double    stoplimit;        // Уровень StopLimit ордера

Utilice SRC para insertar su código (el botón de la parte superior).

 
Sergey Chalyshev:

Le falta un precio límite en la solicitud,

  double    stoplimit;        // Уровень StopLimit ордера

Introduzca el código a través de SRC (el botón de la parte superior).

Estás perdiendo el tiempo.

El hombre ni siquiera se molestó en mirar la ayuda...

 
prostotrader:

Estás perdiendo el tiempo.

El hombre ni siquiera se molestó en mirar el certificado...

Es agradable poder restregar a los demás.
 
Sergey Chalyshev:

Le falta un precio límite en la solicitud,

  double    stoplimit;        // Уровень StopLimit ордера

Utilice el SRC (botón de la parte superior) para insertar el código.

Sergey muchas gracias lo tengo
 
Sergey Chalyshev:

Le falta un precio límite en la solicitud,

  double    stoplimit;        // Уровень StopLimit ордера

Utilice SRC (el botón de la parte superior) para insertar su código.

lo interesante es que en el mundo real el buy stop limit o sell stop limit se ejecuta cuando lo pones con F9 el precio lo hace el mercado cuando lo atraviesa, en el tester este límite se ejecuta cuando el precio lo atraviesa y vuelve a él, no es un tester

Archivos adjuntos:
1.JPG  147 kb
 

Hola a todos.

Tengo este problema. Cuando enciendo el cristal, todo parece normal, pero cuando pasa un tiempo empieza a comportarse de forma inadecuada, es decir, el gráfico vuela hacia arriba o hacia abajo, luego el cristal de precios deja de actualizarse completamente y hasta que no lo cierras y no lo vuelves a abrir se queda congelado. No sé qué hacer. No sé qué hacer.

 

Funciones para obtener el código de futuros

//-------------------------------------------------------------------+
// Split string function                                             |
//+------------------------------------------------------------------+
string SplitString(const string a_str, int &a_month, int &a_year)
{
 int str_size=StringLen(a_str);
 int str_tire=StringFind(a_str, "-");
 int str_tochka=StringFind(a_str, ".", str_tire);
 if((str_tire>0) && (str_tochka>0) &&(str_size > 0))
 {
   a_month= int(StringToInteger(StringSubstr(a_str,str_tire+1,str_tochka-str_tire-1)));
   a_year = int(StringToInteger(StringSubstr(a_str,str_tochka+1,str_size-str_tochka-1)));
   if((a_month > 0) && (a_year > 0)) return(StringSubstr(a_str, 0, str_tire));
  }
 return("");
}
//+------------------------------------------------------------------+
//| Expert Get prefix function                                       |
//+------------------------------------------------------------------+
string GetPrefix(const string a_name)
{
//-- indexes ---
  if(a_name == "MIX") return("MX"); else
  if(a_name == "MXI") return("MM"); else
  if(a_name == "RTS") return("RI"); else
  if(a_name == "RTSS") return("RS"); else
  if(a_name == "ALSI") return("4B"); else
  if(a_name == "RVI") return("VI"); else
//--- SPOT ---  
  if(a_name == "AFLT") return("AF"); else
  if(a_name == "ALRS") return("AL"); else
  if(a_name == "CHMF") return("CH"); else
  if(a_name == "FEES") return("FS"); else
  if(a_name == "GAZR") return("GZ"); else
  if(a_name == "GMKN") return("GK"); else
  if(a_name == "HYDR") return("HY"); else
  if(a_name == "LKOH") return("LK"); else
  if(a_name == "MGNT") return("MN"); else
  if(a_name == "MOEX") return("ME"); else
  if(a_name == "MTSI") return("MT"); else
  if(a_name == "NLMK") return("NM"); else
  if(a_name == "NOTK") return("NK"); else
  if(a_name == "ROSN") return("RN"); else
  if(a_name == "RTKM") return("RT"); else
  if(a_name == "SBPR") return("SP"); else
  if(a_name == "SBRF") return("SR"); else
  if(a_name == "SNGP") return("SG"); else
  if(a_name == "SNGR") return("SR"); else
  if(a_name == "TATN") return("TT"); else
  if(a_name == "TRNF") return("TN"); else
  if(a_name == "VTBR") return("VB"); else
  if(a_name == "MAGN") return("MG"); else
  if(a_name == "PLZL") return("PL"); else
  if(a_name == "YNDF") return("YN"); else
  if(a_name == "AFKS") return("AK"); else
  if(a_name == "IRAO") return("IR"); else
  if(a_name == "POLY") return("PO"); else
  if(a_name == "TCSI") return("TC"); else
  if(a_name == "FIVE") return("FV"); else
  if(a_name == "MAIL") return("ML"); else
  if(a_name == "GBMW") return("BW"); else
  if(a_name == "GDAI") return("DM"); else
  if(a_name == "GDBK") return("GB"); else
  if(a_name == "GSIE") return("SM"); else
  if(a_name == "GVW3") return("VM"); else
//--- procent ---  
  if(a_name == "OF10") return("OX"); else
  if(a_name == "OF15") return("OV"); else
  if(a_name == "OFZ2") return("O2"); else
  if(a_name == "OFZ4") return("O4"); else
  if(a_name == "OFZ6") return("O6"); else
  if(a_name == "MOPR") return("MP"); else
  if(a_name == "RUON") return("RR"); else
  if(a_name == "1MFR") return("MF"); else
  if(a_name == "1MDR") return("DF"); else
//--- currency ---  
  if(a_name == "AUDU") return("AU"); else
  if(a_name == "CY") return("CY"); else
  if(a_name == "ED") return("ED"); else
  if(a_name == "Eu") return("Eu"); else
  if(a_name == "GBPU") return("GU"); else
  if(a_name == "Si") return("Si"); else
  if(a_name == "UCAD") return("CA"); else
  if(a_name == "UCHF") return("CF"); else
  if(a_name == "UJPY") return("JP"); else
  if(a_name == "UTRY") return("TR"); else
  if(a_name == "UINR") return("IN"); else
  if(a_name == "UUAH") return("UU"); else
//--- commodity ---  
  if(a_name == "BR") return("BR"); else
  if(a_name == "CU") return("CU"); else
  if(a_name == "GOLD") return("GD"); else
  if(a_name == "PLD") return("PD"); else
  if(a_name == "PLT") return("PT"); else
  if(a_name == "SILV") return("SV"); else
  if(a_name == "SUGR") return("SA"); else
  if(a_name == "SLV") return("SL"); else
  if(a_name == "ALMN") return("AM"); else
  if(a_name == "CL") return("CL"); else
  if(a_name == "Co") return("Co"); else
  if(a_name == "GLD") return("GO"); else
  if(a_name == "Nl") return("Nl"); else
  if(a_name == "Zn") return("Zn"); else
  if(a_name == "NG") return("NG"); else
  if(a_name == "WH4") return("WH"); else return("");
}  
//+------------------------------------------------------------------+
//| Expert Get future code  function                                 |
//+------------------------------------------------------------------+
string GetFutCode(const string a_str)
{
  int a_month, a_year;
  string f_name = SplitString(a_str, a_month, a_year);
  if(StringLen(f_name) > 0)
  {
    string f_pref = GetPrefix(f_name);
    if(f_pref != "")
    {
      if(a_month !=0)
      {
        switch(int(a_month))
        {
          case 1:
            f_pref += "F"; 
          break;
          case 2:
            f_pref += "G"; 
          break;
          case 3:
            f_pref += "H"; 
          break;
          case 4:
            f_pref += "J"; 
          break;
          case 5:
            f_pref += "K"; 
          break;
          case 6:
            f_pref += "M"; 
          break;
          case 7:  
            f_pref += "N";
          break;  
          case 8:
            f_pref += "Q"; 
          break;
          case 9:
            f_pref += "U"; 
          break;
          case 10:
            f_pref += "V"; 
          break;
          case 11: 
            f_pref += "X";
          break;
          case 12:
            f_pref += "Z"; 
          break;
        }
        if(a_year != 0)
        {
          int res = a_year - int((double(a_year)/10)) * 10;
          return(f_pref += IntegerToString(res));
        }
      }
    }
  } 
  return("");
}

Utilizando

string f_code = GetFutCode(Symbol());
 
¡Muchas gracias!
 

Si no es un secreto, ¿podrías decirme cómo cerrar una posición en FORTS?
Escribí una función para cerrar una posición, basada en la tuya, pero no funciona, inalid solicitantes.

No hay mucha información sobre este tema.

void ClosePosition(ulong& ord_ticket)
  {
   if(ord_ticket >  0)
     {
      if(PositionSelectByTicket(ord_ticket))
        {
         MqlTradeRequest request = {0};
         MqlTradeResult  result  = {0};
         //---
         request.action = TRADE_ACTION_CLOSE_BY;
         request.order  = ord_ticket;
         request.position = PositionGetInteger(POSITION_TICKET);
         request.position_by=PositionGetInteger(POSITION_TICKET)+1;
         request.magic=999999;
         request.volume=1;
         request.deviation = 100;
         request.symbol = _Symbol;
         request.type_filling = ORDER_FILLING_IOC;
         request.type_time = ORDER_TIME_DAY;
         //---
         if(OrderSend(request, result))
           {

            if(result.retcode == TRADE_RETCODE_PLACED)
              {
               ord_ticket = result.order;
              }
            else
              {
               Print("RemovePosition: Удаление старой позиции не выполнено! Билет = ", ord_ticket);
              }
           }
         else
           {
            Print("RemovePosition: Ордер не отослан! Билет = ", ord_ticket);
           }
        }
     }
  }