Proposta para a administração e os residentes locais - página 6

 
Фьючерсные объемы для МТ:

Eu me junto à pergunta - o que é uma porcaria sobre o código no primeiro post?

Sobre o OOP. Não há apenas muito material, há uma tonelada dele. Mas não neste site. E mesmo aqui há alguns. Algumas pessoas são preguiçosas demais para fazer uma pesquisa e estudo adequados.

Ao menos, funciona apenas na fonte de energia na qual o Expert Advisor está instalado....
 
Vladimir Pastushak:
Pelo menos, funciona apenas no símbolo no qual o Expert Advisor está instalado....

Não, o código é bastante bom. É só que você quer algo dele que não foi projetado para ele.

E esse será o maior problema com sua proposta em geral.

Muitas coisas podem ser escritas eficazmente de muitas maneiras. Pessoas diferentes avaliam tanto a tarefa como a solução, e os critérios para sua eficácia, de diferentes maneiras.

Por exemplo, na MT é mais importante para mim ter um código simples do que poder montá-lo a partir de tijolos universais.

 
Владимир:

Não se preocupe. Não é o meu ofício.

Se eu lhe pedir que me mostre um exemplo de escrita de código, diga "Quanto tempo falta até o fim do prazo". Você tem 100% de garantia de me mandarpara o caralho

ou para o departamento de trabalho. Isso é só para dar um exemplo!

É disso que se trata o medo e a relutância. Mas os dedos estão sempre estendidos.

Você também pode dizer que a maioria daqueles que pedem para mostrar o código são apenas preguiçosos, e são preguiçosos demais para olhar através da base de código para encontrar o código "Quanto tempo falta até o fim do período de tempo?

Não é interessante revelar-se ao preguiçoso)

 

Владимир:

A VOLDEMAR está certa. Os programadores são todos diferentes.

Artyom Trishkin 2015.05.31 11:27

//+----------------------------------------------------------------------------+
   datetime GetTimeLeft(string symbol, int timeframe) {return(60*timeframe+(iTime(symbol,timeframe,0)-TimeCurrent()));}
//+----------------------------------------------------------------------------+

Eu escolho Artyom Trishkin.

Concordo, seria incrível se todos fossem iguais...

E eu respeito Artyom(artmedia70), mas neste caso não posso escolhê-lo... E a brevidade do código, ainda não é uma panacéia.

O código conciso pode ser inseguro e potencialmente perigoso.

iTime

Retorna o valor do tempo de abertura da barra (especificado pelo parâmetro de deslocamento) do gráfico correspondente.

datetime  iTime(
   string           symbol,          // символ
   int              timeframe,       // период
   int              shift            // сдвиг
   );

Parâmetros

símbolo

[Nome simbólico do símbolo. NULL significa símbolo atual.

cronograma

[em] Período. Pode ser um dos valores da enumeração ENUM_TIMEFRAMES. 0 significa o período da tabela atual.

turno

[em] Índice do valor do prazo (deslocamento em relação à barra atual pelo número especificado de barras de volta).

Valor retornado

Valor do tempo de abertura da barra (especificado pelo parâmetro de deslocamento) do gráfico correspondente ou 0 no caso de um erro. Você precisa ligar para GetLastError() para obter mais informações sobre o erro.


 

Fórum para negociação, sistemas automatizados de negociação e testes estratégicos

Apresentações à administração e aos habitantes locais

Vladimir Pastushak, 2015.05.31 08:20

A questão para você é qual código você acha mais correto ????

1

void depth_trend()
  {
//--- определение индекса на покупку
   double rsi=iRSI(Symbol(),tf,period,PRICE_CLOSE,0);
   index_rsi = 0;
   if(rsi>90.0) index_rsi=4;
   else if(rsi>80.0)
      index_rsi=3;
   else if(rsi>70.0)
      index_rsi=2;
   else if(rsi>60.0)
      index_rsi=1;
   else if(rsi<10.0)
      index_rsi=-4;
   else if(rsi<20.0)
      index_rsi=-3;
   else if(rsi<30.0)
      index_rsi=-2;
   else if(rsi<40.0)
      index_rsi=-1;
  }

2

int refresh_depth_trend()
  {
   int    index_rsi=0;
   double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,0),up=60,dw=40;
   for(int i=1; i<=4; i++,up+=10,dw-=10)
      index_rsi=rsi>up ? i : rsi<dw ?(i*-1):index_rsi;
   return index_rsi;
  }

3

int refresh_depth_trend()
  {
   return MathFloor( MathAbs( (rsi-50.0)/10.0 - (rsi-50.0)*0.0001 ) ) * ((rsi>50)-0.5)*2;
  }

-- não testaram cada opção quanto à correção -- mas assumindo que as três opções são idênticas de acordo com os resultados -- então qualquer opção está correta

-- sobre concisão de código -- qual opção é a mais fácil e rápida de editar? -- qual variante, depois do tempo, é mais fácil e mais rápida de lidar logicamente e sem maiores explicações?

 
Владимир:

Eu escolho

É por isso que os programadores ventilam seus dedos :) Você realmente não tem muito por onde escolher e não entendeu isso. Em meu arquivo, você pode ver um exemplo de implementação com a exibição do tempo restante no gráfico por segundo. E esta função atualizará o timer somente no próximo recebimento do tick, quando o TimeCurrent() for atualizado + sua saída tem que ser realizada de alguma forma, ou seja, devemos ajustá-lo com algum código breve. No meu exemplo, todo o recheio com óptica de precisão já está lá, e o TimeCurrent() é usado puramente para sincronização com o servidor :)
 
A propósito, a TimeCurrent é uma função muito delicada
 
E a MQL5 tem oTimeTradeServer - muito interessante, mas ainda não teve a chance de usá-lo
Документация по MQL5: Дата и время / TimeTradeServer
Документация по MQL5: Дата и время / TimeTradeServer
  • www.mql5.com
Дата и время / TimeTradeServer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Puzanov:
É por isso que os programadores usam um ventilador de seus dedos :) Você realmente não tem nada por onde escolher e não o entendeu. Em meu arquivo há um exemplo de implementação com exibição por segundo do tempo restante no gráfico. E esta função atualizará o timer somente no próximo recebimento do tick, quando o TimeCurrent() for atualizado + sua saída tem que ser realizada de alguma forma, ou seja, devemos ajustá-lo com algum código breve. No meu exemplo, todo o recheio com óptica de precisão já está lá, e o TimeCurrent() é usado puramente para sincronização com o servidor :)

Por quê, você está tropeçando em um "ventilador" dos meus dedos?

Eu lhe mostrei como saber quanto tempo resta antes que a próxima vela se abra em qualquer período de tempo. Isso é tudo. A questão era exatamente a mesma.

 
Caros programadores, onde posso encontrar um método de programação em µl, onde os programas estabelecidos nas colunas do exel são usados diretamente e assim todo o programa do exel é "conduzido" para o µl?