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

 
pako:

ChartFirst

Devuelve el identificador del primer gráfico del terminal cliente.

Entiendo que este es el gráfico más a la izquierda

Lamentablemente no es así, es fácil comprobarlo:

1. abrir 2-3 pares de divisas en el terminal

2. ejecutar el código para comprobarlo:

   long ch=ChartFirst();
   Print("Первый ID терминала: ",ch, ", символ: ",ChartSymbol(ch),", таймфрейм: ",ChartPeriod(ch));
   for(int i=1;i<=100;i++) {
      ch=ChartNext(ch);
      if(ch<0)break;
      Print(i," chart ID for ",ChartSymbol(ch),ChartPeriod(ch),": ",ch);
  }
 
gyfto:
Vagamente sospecho que no. Te escribiré mañana, ahora estoy en el trabajo.
Sólo ayudará con las barras de tendencia en la subventana. Pero tenemos que interceptar el valor de la escala de alguna manera. ¿Cómo?
 
¿Quién sabe si es posible modificar el TakeProfit de una orden abierta a la zona negativa si la operación está en la zona negativa?
 
woin2110:
¿Quién sabe si es posible modificar el TakeProfit de una orden abierta a la zona negativa si la operación está en la zona negativa?
por supuesto que sí.
 
Hola. Acabo de empezar a escribir un EA hace un par de días. tengo experiencia en programación, pero no he hecho ninguna programación en MQL4 todavía. tengo mucho que aprender, así que estoy pidiendo una solución lista)))). digamos que quiero abrir una orden en 0,01 lote y tengo que establecer takeprofit para ganar 0,5 lote. por favor, muéstreme la forma correcta de hacerlo.
 

Mientras esperaba una respuesta, he investigado un poco y he hecho esto. ¿Se mostrará correctamente? Es domingo y no quiero esperar hasta medianoche para saber si lo he escrito correctamente.


  if(Count ==0)
        symbol = Symbol();
        
   double bid   =MarketInfo(symbol,MODE_BID); // Запрос значения Bid
   double ask   =MarketInfo(symbol,MODE_ASK); // Запрос значения Ask
   double point =MarketInfo(symbol,MODE_POINT);//Запрос Point  
   double  value =MarketInfo(OrderSymbol(), MODE_TICKVALUE);// Размер минимального изменения цены инструмента в валюте депозита
   double stoplevel = MarketInfo(symbol,MODE_STOPLEVEL);
   double digits =   MarketInfo(symbol,MODE_DIGITS);


   
   if( bid<= stoploss1||step1 == 0)
   {
      step1++;
      stoplevel= NormalizeDouble(stoplevel*point,digits);
      stoploss1 = ask-stoplevel;
      takeprofit1 = ask+stoplevel;

 
      double profit =0.5;
      double takeprofit2= profit * point * value * lot1 + bid;
      takeprofit2 = NormalizeDouble(takeprofit2,digits);
      if (takeprofit2 > takeprofit1)
         takeprofit1 = takeprofit2;


 
pycha:

Mientras esperaba una respuesta, busqué y encontré algo e hice esto. ¿Se mostrará correctamente? Es domingo y no quiero esperar hasta la medianoche para saber si lo escribí correctamente.


  if(Count ==0)
        symbol = Symbol();
        
   double bid   =MarketInfo(symbol,MODE_BID); // Запрос значения Bid
   double ask   =MarketInfo(symbol,MODE_ASK); // Запрос значения Ask
   double point =MarketInfo(symbol,MODE_POINT);//Запрос Point  
   double  value =MarketInfo(OrderSymbol(), MODE_TICKVALUE);// Размер минимального изменения цены инструмента в валюте депозита
   double stoplevel = MarketInfo(symbol,MODE_STOPLEVEL);
   double digits =   MarketInfo(symbol,MODE_DIGITS);


   
   if( bid<= stoploss1||step1 == 0)
   {
      step1++;
      stoplevel= NormalizeDouble(stoplevel*point,digits);
      stoploss1 = ask-stoplevel;
      takeprofit1 = ask+stoplevel;

 
      double profit =0.5;
      double takeprofit2= profit * point * value * lot1 + bid;
      takeprofit2 = NormalizeDouble(takeprofit2,digits);
      if (takeprofit2 > takeprofit1)
         takeprofit1 = takeprofit2;



¿No es más fácil?

 if(OrderProfit() > 0.5) OrderClose();

.

 
Necesito calcular un beneficio antes de abrir una orden, para que se pueda establecer inmediatamente cuando se cree la orden.
 
Voy a utilizar este programa no sólo para negociar, sino también para analizar el historial. Tendré que calcular cuántas órdenes en los parámetros requeridos se habrían abierto durante un determinado período de tiempo. por lo que todo tiene que ser calculado manualmente
 
pycha:
Voy a utilizar este programa no sólo para el comercio, sino también para el análisis de la historia. Tendré que calcular cuántas órdenes para los parámetros requeridos habrían sido abiertas durante un determinado período de tiempo. así que todo tiene que ser calculado manualmente

https://www.mql5.com/ru/forum/351

.

Razón de la queja: