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

MQL4 Experts

Tâche terminée

Temps d'exécution 6 jours

Spécifications

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);
          }  
        }    
      }




Répondu

1
Développeur 1
Évaluation
(361)
Projets
643
26%
Arbitrage
92
72% / 14%
En retard
12
2%
Travail
Publié : 1 code
2
Développeur 2
Évaluation
(23)
Projets
29
14%
Arbitrage
3
0% / 67%
En retard
3
10%
Travail
3
Développeur 3
Évaluation
(11)
Projets
17
59%
Arbitrage
2
0% / 100%
En retard
2
12%
Gratuit
4
Développeur 4
Évaluation
(294)
Projets
470
39%
Arbitrage
102
40% / 24%
En retard
78
17%
Chargé
Publié : 2 codes
Commandes similaires
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

Informations sur le projet

Budget
35+ USD
Délais
à 5 jour(s)