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

 
MosheDayan:

Amigos, como sair desta situação corretamente... O indicador desenha duas linhas horizontais do CSV (Vermelho - do início ao fim do dia) Azul - Viga vinda dos últimos dias, com diferentes níveis de preço. Mas há dias em que estes níveis têm o mesmo valor/preço. Qual é o caminho certo para sair desta situação, de modo que quando as linhas coincidem, o Ray(Azul) é exibido, e a linha Vermelha não é visível no gráfico, mas está fisicamente presente... ou seja, é transparente.

Agora - Draw_Level("Red", vermelho, DRAW_NONE, STYLE_SOLID,0); deixa de desenhar a linha, mas o Raio também não é visível de baixo dela. Obrigado.

Preste atenção à seqüência de criação do objeto. E o que é Draw_Level() Por que mencionar uma função personalizada se ninguém está familiarizado com ela?

 
Artyom Trishkin:

Boa tarde. O que exatamente você mesmo estava tentando fazer? Vejo apenas os dois códigos anexos. Se você precisa de alguém que faça tudo por você, é para isso que serve o freelancing.

E se você mesmo estiver tentando, então me mostre exatamente o que está fazendo e onde não entende.

Boa tarde, Artem! Observação correta. Sim, eu estou anexando um arquivo Wordovan com o código. O que acrescentei ao meu código a partir do algoritmo emprestado está marcado em vermelho. Não posso dizer com certeza onde ainda não o entendo, porque não consigo entender completamente o mecanismo do trabalho do código. Mas talvez você seja capaz de me orientar na direção certa com seus conselhos. Ficar-lhe-ia grato.

 

Bom dia!
Estarei abrindo um pedido em um símbolo diferente do gráfico onde o Expert Advisor está anexado. A pergunta é: tenho que pré-verificar a correção da licitação e como faço isso?

double Bid0= MarketInfo(OtherSymbol0,MODE_BID);
OrderSend(OtherSymbol0,OP_SELL,1,Bid0,3,stoploss,takeprofit,"My order",16384,0,clrGreen); 
 

Boa tarde.

Você pode aconselhar como escrever a seguinte hora no código: 23:59 da primeira sexta-feira do mês após a primeira quarta-feira deste mês? ou seja, se o mês começou na quinta-feira, então você precisa da hora 23:59 da segunda sexta-feira...

Obrigado.

 
MosheDayan:

Boa tarde.

Você pode aconselhar como escrever a seguinte hora no código: 23:59 da primeira sexta-feira do mês após a primeira quarta-feira deste mês? ou seja, se o mês começou na quinta-feira, então você precisa da hora 23:59 da segunda sexta-feira...

Obrigado.

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int countWedn=0;
   int countFrid=0;
   if(TimeDayOfWeek(TimeCurrent())==5 && Hour()==23 && Minute()==59)
     {
      countWedn=0;
      countFrid=0;
      for(int i=0; i<=Day(); i++)
        {
         if(TimeMonth(iTime(Symbol(),PERIOD_D1,i))==TimeMonth(TimeCurrent()))
           {
            if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,i))==3)countWedn++;
            if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,i))==5)countFrid++;
           }
        }
     }
   if(countWedn==1 && countFrid==1)Print(" 23:59 первой пятницы месяца после первой среды этого месяца ");
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Você pode. E a direção do pensamento é correta. Você pode me mostrar como você tentou tomar os parâmetros?


Já descobrimos. É necessário "amarrar" o objeto gráfico à classe correspondente.

#include <ChartObjects\ChartObject.mqh>.

nulo OnStart()

{

Objeto CChartObjet;

objName do fio = "";

preço duplo = 0;

data/hora dt;

int NumTriangles = ObjectsTotal(ChartID(),0,OBJ_TRIANGLE);

para (int j=0;j<NumTriangles;j++){

objName = ObjectName(ChartID(),j);

objeto(ChartID(),objName,0,3);

para (int i=0;i<object.NumPoints();i++){

preço = objeto. Preço(i);

dt = objeto. Tempo(i);

Print("Pivot dot - ",IntegerToString(i)," Time = ",TimeToString(dt)," Price = ",DoubleToString(price,4))

}

objeto.Destacar();

}

 

Boa tarde a todos!

Eu tenho tal pergunta, existe tal bloqueio:

opf_all=0;
  for(int is=OrdersHistoryTotal(); is>=0; is--)
   {
    if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MN)
     {
      opf_all=opf_all+OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

A variável opf_all deve produzir o lucro total para todo o período. Mas quando você seleciona o parâmetro do dia atual na guia de histórico da conta do terminal, este módulo mostra o resultado

somente para o dia atual, e quando selecionamos o período inteiro, este módulo mostra para todo o período. Este não deve ser o caso. Independentemente do intervalo no histórico da conta

o módulo ainda deve mostrar o lucro total para todo o período. Talvez eu não entenda alguma coisa?

Este problema está resolvido de alguma forma?

 
Valerius:

Boa tarde a todos!

Eu tenho tal pergunta, existe tal bloqueio:

opf_all=0;
  for(int is=OrdersHistoryTotal(); is>=0; is--)
   {
    if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MN)
     {
      opf_all=opf_all+OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

A variável opf_all deve produzir o lucro total para todo o período. Mas quando você seleciona o parâmetro do dia atual na guia de histórico da conta do terminal, este módulo mostra o resultado

somente para o dia atual, e quando selecionamos o período inteiro, este módulo mostra para todo o período. Este não deve ser o caso. Independentemente do intervalo selecionado no histórico da conta

o módulo ainda deve mostrar o lucro total para todo o período. Talvez eu não entenda alguma coisa?

Este problema está resolvido de alguma forma?

Não, isso não pode ser resolvido a não ser selecionando o tamanho do histórico calculado na guia "Histórico da conta".

E, por favor, cole o código usando o botão SRC - está logo acima do campo de entrada de texto no menu de formatação de mensagens. Eu inseri corretamente seu "estrago" ilegível.

 
Artyom Trishkin:

Não, não resolvido a não ser pela seleção do tamanho do histórico calculado na guia Histórico de contas

E, por favor, cole o código usando o botão SRC - está logo acima do campo de entrada de texto no menu de formatação do post. Coloquei corretamente seu "estrago" ilegível.

Obrigado e desculpas...

 

Olá. Há um botão no gráfico https://www.mql5.com/ru/code/19049 e ele abre o site.preciso ser capaz de habilitar o script através deste botão.pode ser refeito?.obrigado.

Link
Link
  • votos: 11
  • 2017.09.01
  • Iurii Tokman
  • www.mql5.com
Индикатор создает графическую кнопку, при нажатии на которую открывается окно браузера с сайтом, заданным в настройках индикатора.
Razão: