Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1133

 
el comercio es disablet .oshıbka
 
--danger--:

prıvet .podzajajajte pojalusta pogu na demo schete ne mogu otkrıt zdelkı

-peligro-:
el comercio es disablet .oshıbka
¿Es el botón avtotorgovly ne najata? Por favor, indique el nomer osibki, v jurnale dolzen byti.
 
Alekseu Fedotov:

No hay pecados, qué jura.

Cuáles son los errores del compilador

¡Algo que ver con el hecho de que la función debe ser global y esperar comas en lugares donde no tiene sentido ponerlas! Por ejemplo, en el separador entre la información sobre el corredor y el par negociado

 
GoldenGod:
Un consejo para un tonto. ¿Cómo puedo abrir una cuenta real?
Depende del broker, vas a su página web y buscas el botón "Abrir una cuenta real" o algo similar. O en la oficina privada del corredor "Crear una nueva cuenta".
 
Vitalie Postolache:
¿Qué quiere decir con "ninguno"? Ordenar por ticket - siempre habrá un orden y no hay contradicción con la documentación, dice de ordenar por número de serie, no por ticket, son cosas diferentes.
Si te haces una pregunta:
Tenemos esta lista de pedidos en un momento dado (por ticket)
  1. Comprar #1
  2. Comprar #2
  3. BuyStop #3
  4. Venta #4
El orden de las entradas en la lista es: #1,#2,#3,#4

Después de BuyStop #3, ¿qué orden tendrán las entradas en la lista?

¿Es el #1,#2,#4,#3?

Así que las entradas tampoco garantizan el orden.
 
Anton Sokolov:

Otro problema con el que me he encontrado. No juzgues, he estado estudiando el idioma durante 2 o 3 semanas, ¡quizás sea tonto!

La tarea del Asesor Experto es notificar al comerciante por correo electrónico cada 4 horas, si el margen libre en la cuenta ha añadido un cierto valor.

En el asunto del mensaje tienes que escribir el nombre del broker y el par negociado, y en el cuerpo del mensaje "¡Peligro! La detracción está por encima del límite. Adopte las medidas necesarias".

El compilador está funcionando mal, no soy bueno en inglés y no puedo averiguar cuál es el error.

input  double MessageMail     = 50.0;
double Sag;

void OnTick()
  {
   Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1);  //находим процент просадки и округляем до 1 знака
    if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3)                                       //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
     {
     Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ",  MessageMail, " % ");                 //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит                          
     }
  }


PS: Tal vez en general hay una solución más fácil para este tipo de problema, pero hasta ahora lo veo sólo de esta manera)

//+------------------------------------------------------------------+
//|                                               exTestSendMail.mq4 |
//|              Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link      "https://login.mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property strict

input  double MessageMail     = 50.0;
//---
double Sag=0;
string MailSubject="";
datetime PrevTime=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   MailSubject="Mail from EA "+MQLInfoString(MQL_PROGRAM_NAME);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   //--- Находим процент просадки и округляем до 1 знака
   Sag=NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_MARGIN_FREE)/AccountInfoDouble(ACCOUNT_BALANCE)),1);
   //--- Если открыт новый бар на H4
   if(iTime(Symbol(),PERIOD_H4,0) !=PrevTime) {
      //--- если просадка больше заданного
      if(Sag>MessageMail) {
         Alert(Symbol(), ": Просадка = ", DoubleToString(Sag,1), " % ", " > ",  MessageMail, " % ");              //вывести предупреждение в терминале
         string MailText=AccountInfoString(ACCOUNT_COMPANY)+" > Опасность! Просадка ("+DoubleToString(Sag,1)+"%) привысила допустимое значение. Примите необходимые меры.";
         SendMail(MailSubject,MailText);
         }
      PrevTime=iTime(Symbol(),PERIOD_H4,0);
      }
  }
//+------------------------------------------------------------------+
En general, es mejor hacer comprobaciones de este tipo en un temporizador.
 

Gracias. Prepara el envío de cartas.

 

cómo arreglarel valor de retorno '' OrderClose debe ser comprobado??????????????????????????????

 
No se puede empezar a usar el xamp
 

Estimados programadores, por favor ayuden a un novato en este negocio.

El EA está abriendo órdenes de compra y venta secuencialmente después de un cierto período de tiempo. Quiero que modifique todas las órdenes anteriores (en concreto, que todas las anteriores se cierren con el Take Profit de la última. Es decir, si la última orden de compra y la orden de venta anterior, entonces el stop loss de la orden anterior se establece en el nivel de take profit de la última,

Si la compra anterior compra, entonces su TakeProfit se fijará en el nivel del último TakeProfit. Bueno, etc. La cuestión es que cuando llega la toma de beneficios de la última orden, todas las órdenes deben estar cerradas).

Espero haberlo explicado con claridad, aunque es difícil entender cómo debe aplicarse. Gracias de antemano.

Entiendo que podemos pasar por todos los pedidos abiertos y modificarlos, pero ¿cómo podemos saltarnos el último pedido?