Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1567

 
MakarFX:

Eu acho que deveria ser assim

Se criarmos um novo objeto cada vez no OnTick(), o tempo do tick anterior não será salvo em nenhum lugar.
O objetivo de criar um objeto global é armazenar o tempo do tick anterior, comparando-o com o tempo do novo tick, saberemos se há ou não um novo bar...

 
MakarFX:
Por que precisamos desta variável NB_M1 ?
Sua única finalidade é armazenar o tempo do último tick processado para cada símbolo e período de tempo:
protected:
   datetime          m_TOld;        // Время хранится 
   ENUM_TIMEFRAMES   m_TimeFrame;   //    для каждого таймфрейма
   string            m_Symbol;      //    каждого символа

 
Mikhail Tkachev:
class CIsNewBar

retorna verdadeiro/falso , de que horas estamos falando?

 
MakarFX:

Experimente, no testador está tudo bem.

Não, não é isso. Agora abre e fecha um contrato de cada vez.

A idéia é exatamente abrir um contrato adicional quando o trailing stop é puxado para cima até mesmo pelo Brake.

Tudo isso é feito obedientemente. Mas vejo uma desvantagem no fato de que em stop loss=150 pips e take profit=500 pips ele abre até cinco contratos e também freqüentemente puxa em stop loss.
No entanto, notei que ao comprar cinco contratos, o preço de entrada no mercado diminui e, portanto, o risco/margem é muito maior.
Por causa disso, eu quero mudar meu robô para comprar apenas um contrato, e tirar lucro de até dois contratos, e a perda do trailing stop aumentaria cinco vezes.
Por causa dessa ordem de reboque (compra e venda adicional) e do reboque (perda do trailing stop) estão no meu robô
 
Eugen8519:
Não, não é isso, ele abre e fecha um contrato de cada vez.

A idéia é que o contrato de reboque abrirá um contrato adicional e a parada de reboque será puxada até mesmo pelo freio.

Tudo isso é feito obedientemente. Mas vejo uma desvantagem no fato de que no stop loss=150 pips e take Profit=500 pips ele abre até cinco contratos e também muitas vezes faz um stop loss.
Entretanto, notei que a compra de cinco contratos leva a uma diminuição do preço de entrada no mercado e, portanto, o risco/margem é muito maior.
Por causa disso, eu quero fazer com que ele se aproxime de um contrato, e ele se aproxime para ter lucro no máximo dois contratos, e a perda do trailing stop se encaixa em até cinco vezes.
Portanto, a ordem de reboque (compra adicional e venda adicional) e a ordem de reboque (perda do trailing stop) foram adicionadas ao robô

Aqui, corrigir "0" para "2".

   if(pos_total<=0 )
      {TrailingOrder();}
   Trailing();
 

como tornar este problema automático? ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN

talvez alguém tenha um já feito ?

 
Aleksandr Egorov:

como tornar este problema automático? ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN

Talvez alguém tenha um exemplo pronto?

Há um exemplo pronto na documentação. Basta estabelecer uma política de preenchimento para o símbolo primeiro. Busca por SYMBOL_FILLING_FOK

 
Aleksandr Egorov:

como tornar este problema automático? ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN

Talvez alguém tenha um ready-made?

Preenchendo MqlTradeRequest diretamente você mesmo ?

Há demasiadas armadilhas!

veja a CTrade::FillingCheck() - como os desenvolvedores recomendam a definição de enchimento

 
Boa tarde a todos. Alguém já se deparou com uma situação semelhante? Em geral, há um oscilador escalável. Preciso saber programticamente, quais são os valores extremos atuais da escala da janela visível deste oscilador. Espero entender o que estou dizendo). Eu ficaria grato pela ajuda!
 
AMarkov:
Boa tarde a todos. Talvez alguém tenha encontrado uma situação semelhante? Em geral, há um oscilador escalável. Preciso saber programmaticamente quais são os valores extremos da escala da janela visível deste oscilador no momento. Espero entender o que estou dizendo). Eu ficaria grato pela ajuda!
bool  ChartGetInteger( 
   long    chart_id,        // идентификатор графика 
   int     prop_id,         // идентификатор свойства 
   int     sub_window,      // номер подокна 
   long&   long_var         // сюда примем значение свойства 
   );

com identificadores CHART_PRICE_MIN e CHART_PRICE_MAX

Razão: