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

 
vovan-gogan:
Pessoal, socorro: tenho uma condição em minha EA que é abrir uma posição de compra somente se o baixo do castiçal anterior estiver abaixo de todos os baixos dos 40 castiçais anteriores. A pergunta: como implementar esta enumeração dos mínimos anteriores do castiçal e descobrir se o mínimo do castiçal anterior estava abaixo do mínimo do castiçal anterior? Agradeço antecipadamente.
int TotalBars = 40; // Общее количество свечей по которым нужно осуществлять перебор
double max=0.0;
double min=100.0;
for(int n=0; n<TotalBars; n++)
  {
  if(High[n]>max) max=High[n];
  if(Low[n]<min) min=Low[n];
  }
MessageBox("Maximum="+max+" Minimum="+min);
 
langolier:

Ai, obrigado!)
 
langolier:

Mmm... O problema é o seguinte... Os dados devem ser atualizados a cada novo tick e somente para as últimas 30 barras. Eu guardo os dados por algum motivo
 
sergeev:

Ajude-me a encontrar um erro!


10
mamba5 18.08.2011 14:23

Estou escrevendo um EA baseado na estratégia "Black MACD":


Par de moedas: qualquer

Prazo: 15 e mais.

Indicadores: EMA(3) EMA(18), RSI(14), MACD(12,26,9)

Remova a linha de sinal do indicador MACD, todos os indicadores são aplicados ao indicador Fechar preço.

Comprar sinal de entrada: EMA(3) atravessa o EMA(18) de baixo para cima, esperar que o MACD mostre um lado positivo. Se o RSI(14) estiver acima do nível 50, então compre. A parada de perda é definida no último mínimo local. Saia do comércio invertendo o crossover do EMA, ou use sua própria abordagem.

Sinal para vender: Situação inversa: Cruzamento do EMA(3) EMA(18) para baixo, esperar que o MACD seja negativo. Se RSI(14) estiver abaixo de 50, então compre. Stop-loss está ajustado para a última alta.


Ao compilar o código, ele diz que falta um parêntese. Depois de uma longa busca, eu parecia ter encontrado onde deveria estar, mas depois de corrigir o erro consegui mais 20-30 novos bugs. Por favor, me avise onde eu perdi isso. ))) O código está no arquivo anexo.

Arquivos anexos:
BlackvMACD.mq4 (5.21 KB) apagar
Corrigidos os erros de compilação. Eu não entrei na correção do algoritmo de implementação da estratégia.
Arquivos anexados:
 
first_may:


Leia: https://book.mql4.com/ru/variables/arrays . Acontece que eu posso organizar uma matriz bidimensional para três pares: duplo Mas_d[3][2] = {1, 0, 2, 0, 3,0};

tendo isso em mente:

o valor de Mas_d[1][1] corresponde, por exemplo, ao par AUDCAD, e Mas_d[1][2] é o valor deste par;

o valor de Mas_d[2][1] corresponde, por exemplo, ao par AUDCHF e Mas_d[2][2] é o valor deste par;

valor Mas_d[3][1] corresponde por exemplo ao AUDJPY, e Mas_d[3][2] é o valor deste par,

os elementos da matriz mantêm seus valores entre carrapatos. E então eu serei capaz de mudar os valores dos elementos da matriz de acordo com o critério que eu preciso. Eu entendi corretamente o que você quer dizer? :)

Sim. A abordagem pode não ser a melhor, mas todos a escolhem. E então, se necessário, modernizá-lo e otimizá-lo! :))

Estou no processo de modernização de minha abordagem. Não é conveniente em alguns casos! :D

 
MaxZ:

Sim. A abordagem pode não ser a melhor, mas todos a escolhem por si mesmos. E então, se necessário, modernizá-lo e otimizá-lo! :))

Estou no processo de modernização de minha abordagem. Não é conveniente em alguns casos! :D

Sou um principiante e tentei escrever um Expert Advisor de teste, mas cometi um erro ao compilá-lo " {\i1}end_of_program' - final do parêntese '} esperado C:\Program Files\ForexClub MT4 Experts\trsi01.mq4 (30, 3)" Eu sei que escrevi errado, você poderia por favor me dizer onde cometi erros?

//+------------------------------------------------------------------+
//| trsi01.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#direitos autorais "Copyright © 2011, MetaQuotes Software Corp.
#link da propriedade "http://www.metaquotes.net"

StopLoss duplo=30;

duplo TakeProfit=100;

Lotes duplos=0,1;

retorno(0);


int start()
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point)
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point);
{
retorno(0);
{

 
acoman:

Sou um principiante e tentei escrever um Expert Advisor experimental, mas quando o compenso recebo o erro "end_of_program" - parêntese final '} esperado C:\Program Files\ForexClub MT4 Experts\trsi01.mq4 (30, 3)" Eu sei que escrevi errado, você poderia me dizer onde está o erro?

//+------------------------------------------------------------------+
//| trsi01.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#direitos autorais "Copyright © 2011, MetaQuotes Software Corp.
#link da propriedade "http://www.metaquotes.net"

stopLoss duplo=30;

duplo TakeProfit=100;

Lotes duplos=0,1;

retorno(0);


int start()
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point)
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point);
{
retorno(0);
{


O erro é que você não leu o manual de capa a capa. Se você o abriu de todo.

Mas você obviamente perdeu esta seção: Operador condicional se - caso contrário.

Seria melhor você ler o livro de capa a capa.

 
Obrigado, vou ter isso em mente :). Você pode informar qual é a parada mínima de perda de um par de moedas específico? Por exemplo EURAUD - você não pode colocar uma parada de perda inferior a 100 pips, e para os outros?
 
first_may:
Obrigada, não se esqueça disso :). Poderia me dizer, por favor, qual stop-loss mínimo tem um par de moedas específico? Por exemplo, EURAUD - você não pode definir um limite de perda inferior a 100 pips para EURAUD, e para os outros?

https://book.mql4.com/ru/appendix/marketinfo

MODE_STOPLEVEL 14 Nível mínimo permitido de stop loss/stake profit em pips
 

Como você forma um número binário, por exemplo, de 7 dígitos? E como pode então (por conveniência) ser convertido para um número decimal?