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 code
2
開発者 2
評価
(23)
プロジェクト
29
14%
仲裁
3
0% / 67%
期限切れ
3
10%
仕事中
3
開発者 3
評価
(11)
プロジェクト
17
59%
仲裁
2
0% / 100%
期限切れ
2
12%
4
開発者 4
評価
(295)
プロジェクト
473
40%
仲裁
103
41% / 23%
期限切れ
78
16%
多忙
パブリッシュした人: 2 codes
類似した注文
Do I need a risk management EA for MT5 MANAGER FEATURES 1. Daily Loss Lock (total) If the sum of realized + floating losses on the day reaches the configured value (ex: -$200), the EA: Cancels all pending orders. Closes all open operations. Prevents new orders until the next day (resets only the next day). 2. Instant Floating Loss Lock If the current floating loss (open drawdown) is equal to or greater than the daily

プロジェクト情報

予算
35+ USD
締め切り
最高 5 日