Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 802

 
pako:

ChartFirst

Retorna o identificador do primeiro gráfico do terminal do cliente.

Eu entendo que este é o gráfico mais à esquerda.

Infelizmente não é, é fácil verificá-lo:

1. Abra 2-3 pares de moedas no terminal.

2. Execute o código para verificá-lo:

   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:
Eu suspeito vagamente que não. Escreverei de volta amanhã, estou de saída para trabalhar agora.
Só ajudará através de barras de tendência na subjanela. Mas precisamos interceptar de alguma forma o valor da escala. Como?
 
Quem sabe se é possível modificar o TakeProfit de uma ordem aberta para a zona menos, se o comércio estiver na zona menos?
 
woin2110:
Quem sabe, é possível modificar o TakeProfit de uma ordem aberta para a zona menos, se o comércio estiver na zona menos?
é claro que você pode.
 
Olá. comecei a escrever um EA há alguns dias. tenho experiência em programação, mas ainda não fiz nenhuma programação na MQL4 . tenho muito a aprender, então estou pedindo uma solução pronta)))). digamos que quero abrir um pedido a 0,01 lote e preciso definir o takeprofit para ganhar 0,5. por favor, mostre-me a maneira correta de fazer isso.
 

Enquanto esperava por uma resposta, procurei e encontrei algo e fiz isto. Será que ele aparecerá corretamente? É domingo e não quero esperar até a meia-noite para descobrir se o escrevi corretamente.


  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:

Enquanto esperava por uma resposta, procurei e encontrei algo e fiz isto. Será que ele aparecerá corretamente? É domingo e não quero esperar até a meia-noite para descobrir se o escrevi corretamente.


  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;



Não é mais fácil?

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

.

 
Preciso calcular um lucro antes de abrir um pedido, para que ele possa ser definido imediatamente quando o pedido for criado.
 
Vou usar este programa não só para negociar, mas também para analisar o histórico. precisarei calcular quantos pedidos para os parâmetros necessários teriam sido abertos durante um determinado período de tempo. portanto, tudo precisa ser calculado manualmente
 
pycha:
Vou usar este programa não apenas para negociação, mas também para análise do histórico. precisarei calcular quantas ordens para os parâmetros necessários teriam sido abertas durante um determinado período de tempo. portanto, tudo precisa ser calculado manualmente

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

.