Preciso de programador para fazer EA forex usando SMA (MetaTrader 4)

MQL4 Эксперты

Работа завершена

Время выполнения 6 дней

Техническое задание

1. Condições
- O programador deve permitir que eu faça backtesting antes de efetuar o pagamento.
- No ato do pagamento o programador deve fornecer o arquivo .mq4.
- O arquivo .mq4 deve compilar sem nenhum "Warning".
- O EA será testado e utilizado no ICMarkets raw account.
- A propriedade intelectual do EA pertence ao contratante.
- O programador não tem nenhuma responsabilidade sobre a eficácia do EA.
- O EA só deve efetuar uma ordem (BUY ou SELL) por vez.

2. Aba de INPUTS
Esta aba deve permitir que o usuário altere os seguintes INPUTS
- input "RANGING_CANDLES" (default 20 - explicado no item 4)
- input "RANGING_LIMIT" (default 200 - explicado no item 4 )
- input "LOT SIZE" (default 0.01)
- input "MAGIC NUMBER" (default 201159)

3. SMAs a serem utilizadas

double sma_7  = iMA (_Symbol,_Period,7,0,MODE_SMA, PRICE_CLOSE,0);   //magenta
double sma_9  = iMA (_Symbol,_Period,9,0,MODE_SMA, PRICE_CLOSE,0);   //cyan
double sma_60 = iMA (_Symbol,_Period,60,0,MODE_SMA, PRICE_CLOSE,0);  //dashed white
4. Função RANGING

Esta função consiste em desenhar 2 linhas no gráfico em uso. A primeira linha (código abaixo) indica a média do fechamento em ALTA do número de velas estabelecido no input "RANGING_CANDLES" . A segunda linha é a média do fechamento em BAIXA do número de velas estabelecido no input "RANGING_CANDLES".
Para gerar esta segunda linha alterar o código abaixo para calcular a média do fechamento em BAIXA (iLowest).

    int HighestCandle = iHighest(_Symbol,_Period,MODE_HIGH,10,0);// CANDLES HIGH
    ObjectDelete("line");// DELETE THE EXISTING LINES
    ObjectCreate("line",OBJ_HLINE,0,Time[0],High[HighestCandle]);// CREATE LINE, HIGHEST PRICE, STARTING FROM CANDLE 0
    );     

4.1 Setando a variável "Ranging"
Esta variável é calculada pela DIFERENÇA entre a média do fechamento em ALTA e a média do fechamento em BAIXA.
Quando esta diferença for < ou = ao valor setado no input "RANGING_LIMIT" a variável "Ranging" será = 1. Caso contrário será = 0.
O estado desta variável será utilizado para definir se ordens (sejam BUY ou SELL) serão colocadas ou não.

5. Lógica para ABRIR ordem BUY ou SELL

NOTA
Não tenho certeza se a sintaxe deste item (5) e do (6) está correta.
Por favor corrigir onde necessário.

  if((OrdersTotal() == 0) && (Ranging == 0)){
     if((sma_9 < sma_60) && (sma_7 > sma_9)){
        OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,0,"BUY order placed",MagicNumber,0,0,clrGreen); 
     }
   
     if((sma_9 > sma_60) && (sma_7 < sma_9)){
        OrderSend(Symbol(),OP_SELL,0.01,Ask,3,0,0,"SELL order placed",MagicNumber,0,0,clrRed); 
     }
  }

6. Lógica para FECHAR ordem BUY ou SELL

      if(OrdersTotal() > 0){
        if((sma_9 > sma_60) && (sma_7 < sma_9)){
          if(OrderType() == OP_BUY){
            OrderClose(OrderTicket(),OrderLots(),Bid,3,clrWhite);
          }  
        }    
          
        if((sma_9 < sma_60) && (sma_7 > sma_9)){
          if(OrderType() == OP_SELL){
            OrderClose(OrderTicket(),OrderLots(),Bid,3,clrMagenta);
          }  
        }    
      }




Откликнулись

1
Разработчик 1
Оценка
(361)
Проекты
643
26%
Арбитраж
92
72% / 14%
Просрочено
12
2%
Работает
Опубликовал: 1 пример
2
Разработчик 2
Оценка
(23)
Проекты
29
14%
Арбитраж
3
0% / 67%
Просрочено
3
10%
Работает
3
Разработчик 3
Оценка
(11)
Проекты
17
59%
Арбитраж
2
0% / 100%
Просрочено
2
12%
Свободен
4
Разработчик 4
Оценка
(294)
Проекты
470
39%
Арбитраж
102
40% / 24%
Просрочено
78
17%
Загружен
Опубликовал: 2 примера
Похожие заказы
Tenho uma foto e video(não deu para anexar) de um robo trabalhando com buy stop e sell stop com indicadores de força e volatilidade. Gostaria de saber se consegue construir um

Информация о проекте

Бюджет
35+ USD
Сроки выполнения
до 5 дн.