[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 27

 
volshebnik:
Sim, muito obrigado pelos grandes esclarecimentos. Eu implementei a otimização em todas as TFs. Informar-me-ei dos resultados após otimização+teste em diferentes segmentos.


Você perguntou sobre a possibilidade de enumerar e otimizar programmaticamente os possíveis TFs para obter seus valores indicadores no Expert Advisor. Isto é possível da seguinte forma - por exemplo

Aqui estão alguns trechos de código do Expert Advisor no arquivo onde esta operação é realizada - tudo é descrito lá com comentários.

......
extern int t_trend_period=7;
......

int trend_period=GetPeriod(t_trend_period); // это ф-ия для определения ТФ согласно заданному значению t_trend_period - заданному во внешней переменной (диапазон от 0 до 7)

double t_stoch_main=iStochastic(NULL,trend_period,t_Kperiod,t_Dperiod,t_slowing,MODE_SMA,0,MODE_MAIN,0);
......

// сама ф-ия выбота ТФ для оптимизации по всем периодам 
int GetPeriod(int period)
{int periodres;
 switch(period)
  {
   case 1: periodres=1;break;
   case 2: periodres=5;break;
   case 3: periodres=15;break;
   case 4: periodres=30;break;
   case 5: periodres=60;break;
   case 6: periodres=240;break;
   case 7: periodres=1440;break;
   default: periodres=1;break;
  }
return(periodres);
}

Que outra pessoa o considere útil.

Arquivos anexados:
 

Por favor, avise! Como fazer, digamos, um novo bar aberto em um horário (H1) e o tempo é contado por cerca de 50 minutos neste bar, após 50 minutos haverá um sinal. Ouvi falar de Dormir.

 
anton777:

Por favor, avise! Como fazer, digamos, um novo bar aberto em um horário (H1) e o tempo é contado por cerca de 50 minutos neste bar, após 50 minutos haverá um sinal. Ouvi falar de Dormir.

int minutes=50; 

if(TimeCurrent()>=iTime(NULL,PERIOD_H1,0)+minutes*60){

   /// 

}
 

Tenho uma coisa estranha - o indicador personalizado no gráfico e dentro da EA dá números completamente diferentes. O indicador é analógico MQL do LinearReg da MetaStock. Está escrito da seguinte forma

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Magenta

extern int  RPeriod = 20;

int shift = 0, cnt = 0,loopbegin = 0;
bool first = True;
int prevbars = 0;
double sum =0, WT = 0;
int i = 0;

double val1[];

int init()
{
SetIndexBuffer(0,val1);
   return(0);
}

int start()
{
   if (RPeriod<1) 
   {
   return(0);
   }
   loopbegin=Bars-RPeriod-1;
   for (shift=loopbegin; shift>=0; shift--)
   {
      sum=0;
      for (i=RPeriod; i>=1; i--)
      {
         sum=sum+(i-(RPeriod+1)/3)*Close[RPeriod-i+shift];
      }
      WT = sum*6/(RPeriod*(RPeriod+1));

           val1[shift] = WT;
        }
   return(0);
}
Quando é anexado a um gráfico, ele mostra exatamente os mesmos resultados que o MetaStock tem. Mas assim que é anexado a um Expert Advisor comercial, seu valor é superior a 1,4 (em sua propriedade indicator_chart_window) em EURUSD, onde as cotações são em torno de 1,29. Naturalmente, os sistemas comerciais reproduzidos para MetaStock não podem funcionar, acontece que eles sempre ocupam a mesma posição. Se eu clicar nos resultados da EA, a linha deste indicador permanece longe, mas se eu simplesmente recompilá-lo, o gráfico se torna imediatamente correto como no MetaStock. Não consigo entender por que há tanta diferença.
 

Olá, caros especialistas!

Eu gostaria de pedir sua ajuda! Quero tentar fazer meu primeiro Expert Advisor, com tarefas ...
1-Pipo
2-М5
3-Can define parâmetros de parada e takeaway.
4 - Ao invés de decolagens, seria possível (opcional) incluir a inversão de posição toda vez que este nível fosse atingido
Para pará-lo manualmente, por meio de teclas de atalho, digamos.
5 - Absolutamente nenhuma indução.
Então é isso. Espero não ter feito o download.
Na verdade, eu preciso de pelo menos algumas fontes de nitsy, ou layout, bem, isso não seria muito complicado, eu sou tão acrome scripts não fizeram nada, e isto é, tokmo pronto refeito principalmente para ele mesmo.
Espero sua ajuda

 
Mr.Ross:

Olá, caros especialistas!

Eu gostaria de pedir sua ajuda! Quero tentar fazer meu primeiro Expert Advisor, com tarefas ...
1-Pipo
2-М5
3-Can define parâmetros de parada e takeaway.
4 - Ao invés de decolagens, seria possível (opcional) incluir a inversão de posição toda vez que este nível fosse atingido
Para pará-lo manualmente, por meio de teclas de atalho, digamos.
5 - Absolutamente nenhuma indução.
Então é isso. Espero não ter feito o download.
Na verdade, eu preciso de pelo menos algumas fontes de nitsy, ou layout, bem, isso não seria muito complicado, eu sou tão acrome scripts não fizeram nada, e isto é, tokmo pronto refeito principalmente para ele mesmo.
Espero sua ajuda

https://www.mql5.com/ru/articles/1413
 
Mr.Ross:

Eu quero pedir sua ajuda!

Nós o ajudaremos se você não entender a parte da programação, mas não esqueça: "Salvando o afogamento - o próprio afogamento" = Você mostra parte do código onde há pontos pouco claros, o código de 1,5 mil linhas - desista e resolva você mesmo ;)
 
Ilya81:

Eu tenho uma coisa estranha

tente comparar visualmente alguns indicadores e dados simples que o Expert Advisor recebe via iCustom() deste indicador. Eu acho que MovingAverage é um bom indicador para experimentos

você deve estar usando a função iCustom() de forma incorreta

 
Integer:

Muito obrigado!
 

Se alguém trabalha na instaforex mt4, talvez tenha encontrado um problema:

Eles têm quatro dígitos na demonstração, cinco dígitos no real, mas muito estranho - lance e peça são arredondados para quatro dígitos.


aqui está um código desse tipo:

   if (Poz_Up)
      {
         ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,NormalizeDouble(Bid-300*Point,Digits),NormalizeDouble(Ask+300*Point,Digits),Komment,0,Green);
      }
   if (Poz_Dn)
      {
         ticket=OrderSend(Symbol(),OP_SELL,0.01,Bid,3,NormalizeDouble(Ask+300*Point,Digits),NormalizeDouble(Bid-300*Point,Digits),Komment,0,Green);
      }

tenho a sensação de que não sei o que fazer com ele. ele dá SL&TP quando abro uma posição então 300pts, depois 3000pts como se eu estivesse tentando descobrir quais são os Dígitos cada vez que recebo um novo.

Alguém pode sugerir como resolver este problema e alguém já enfrentou situações semelhantes ou sou apenas eu?