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

MQL4 Esperti

Lavoro terminato

Tempo di esecuzione 6 giorni

Specifiche

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




Con risposta

1
Sviluppatore 1
Valutazioni
(361)
Progetti
643
26%
Arbitraggio
92
72% / 14%
In ritardo
12
2%
In elaborazione
Pubblicati: 1 codice
2
Sviluppatore 2
Valutazioni
(23)
Progetti
29
14%
Arbitraggio
3
0% / 67%
In ritardo
3
10%
In elaborazione
3
Sviluppatore 3
Valutazioni
(11)
Progetti
17
59%
Arbitraggio
2
0% / 100%
In ritardo
2
12%
Gratuito
4
Sviluppatore 4
Valutazioni
(294)
Progetti
470
39%
Arbitraggio
102
40% / 24%
In ritardo
78
17%
Caricato
Pubblicati: 2 codici
Ordini simili
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

Informazioni sul progetto

Budget
35+ USD
Scadenze
a 5 giorno(i)