Escreverei um conselheiro sem custos - página 63

 
Olá. Pode utilizar esta estratégia para escrever um conselheiro https://www.youtube.com/watch?v=V58JIhy2rw4. Ou tem algum conselheiro que estagna no lugar ou está ligeiramente no black.... Para rendimentos com desconto no site fxcash.ru. Obrigado. Se houver alguma coisa, por favor contacte-me no facebook https://vk.com/id16112208 ou pessoalmente.
Метод торговли на FOREX (Безубыточный)
Метод торговли на FOREX (Безубыточный)
  • 2016.01.11
  • www.youtube.com
САЙТ – http://forexbid.jimdo.com/strategy/metod/ ФОРУМ – http://forex.forumex.ru/viewtopic.php?f=5&t=45&p=73#p73 Возврат спреда http://www.getforexrebate.com...
 
Sergey Zaitsev:
Olá. Pode escrever um consultor especializado sobre esta estratégia https://www.youtube.com/watch?v=V58JIhy2rw4. Ou talvez tenha um consultor especializado, que estagna no local ou vai lucrar um pouco.... Para rendimentos com desconto no site fxcash.ru. Obrigado. Se isso for necessário, por favor contacte https://vk.com/id16112208 ou em privado.
Sim, eu escrevi este tipo de corujas.
****
Para um desconto está bem. Obtém muitos lotes sem muitos saques.
Mas durante um longo apartamento, pode perder ...
 
Não presumo que seja um apartamento longo, mas exactamente quando o apartamento se expande? É possível obter um?
 
é o seu serviço de descontos globegain.com ok? porque é que o forex4u dá tanto - $18.6 por lote....insta - $14.3... é real?
 

Boa tarde!

Decidi robotizar um pouco a minha negociação. Utilizei um Expert Advisor de tendência do terminal MT4"Moving Average". Decidi utilizar o meu próprio terminal de EA do MT4 e fiz algumas ligeiras modificações. Adicionei mais uma máscara, alterei as condições de entrada e saída, adicionei paragem e lucro e tempo de abertura limitado. Gostaria de acrescentar mais.

1) A capacidade de abrir duas ordens ao mesmo tempo com stop loss ajustável, ter lucro, passar a perda zero.

2) Número de entradas por dia ajustável.

3) Possibilidade ajustável de entrar no dia seguinte quando uma troca está aberta.

4)Saída ajustável por stop loss, sem perda ou lucro.

5)Retirar o cálculo do risco máximo. (Necessidade particular não a vejo, além de não compreender como calcula o risco, a impressão de que do fundo, os lotes foram abertos depois 0,10 e depois 1,00)

6) Não funciona correctamente no par cambial USDJPY

Talvez algo deva ser corrigido, limpo para melhorar o trabalho da EA. Ajuda ou dicas.

Funciona em mais de dez gráficos ao mesmo tempo, em cada janela do gráfico do par de moedas tem a sua própria EA. O código está anexado. Obrigado a todos os que respondem.

//+------------------------------------------------------------------+
//|                                                      MA_MA_1.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//#property strict
#define  MAGICMA  20131112
//--- Inputs
input double SL             =500; //стоп лос
input double TakeProfit     =1000; //тейк профит
input double Lots           =0.01; //розмер лота
//input double MaximumRisk    =0.1; //отключил не понятна логика расчета
input double DecreaseFactor = 3; //фактор снижение(наверно проскальзывание)
input int    MovingPeriod1  =36; //медленная средняя
input int    MovingPeriod2  =12; //быстрая средняя
input int    MovingShift1   =10; //сдвиг медленной средней
input int    MovingShift2   = 0; //сдвиг быстрой средней
extern int   TimeStart      = 8; //время начала торгов
extern int   TimeStop       =20; //время окончания торгов
//+------------------------------------------------------------------+
//| Calculate open positions     //считаем открытые позиции                                    |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
  {  
   int buys=0,sells=0;
//---
   for(int i=0;i<OrdersTotal();i++)
     {    
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//--- return orders volume //объём ордеров на возврат
   if(buys>0) return(buys);
   else       return(-sells);
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size       //расчет оптимального размера лота                                |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int    orders=HistoryTotal();     // history orders total (история заказов всего)
   int    losses=0;                  // number of losses orders without a break (количество потерь заказов без перерыва)
//--- select lot size //ОТКЛЮЧИЛ выбор размер лота. 
//lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);//(логика выбора мне не понятна)
//--- calcuulate number of losses orders without a break (Расчет количества заказов на потери без перерыва)
//   if(DecreaseFactor>0)
//    {
//      for(int i=orders-1;i>=0;i--)
//        {
//         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
//           {
//            Print("Error in history!");
//            break;
//           }
//         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL)
//            continue;
         //---
//         if(OrderProfit()>0) break;
//         if(OrderProfit()<0) losses++;
//        }
//      if(losses>1)
//         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
//     }
//--- return lot size (розмер возвращаемого лота)
   if(lot<0.1) lot=0.1;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Check for open order conditions       //проверка условий для открытия ордера                           |
//+------------------------------------------------------------------+
void CheckForOpen()
  {  
   double ma1; //медленная средняя
   double ma2; //быстрая средняя
   int    res;
//--- go trading only for first tiks of new bar// торговать только на первом тике нового бара
   if(Volume[0]>1) return;
//--- get Moving Average //получение скользящих средних
   ma1=iMA(NULL,0,MovingPeriod1,MovingShift1,MODE_SMA,PRICE_CLOSE,0);//медленная
   ma2=iMA(NULL,0,MovingPeriod2,MovingShift2,MODE_SMA,PRICE_CLOSE,0);//быстрая
//--- sell conditions //условия для продажи
   if(ma1<ma2 && Close[1]<ma1 && TimeHour(TimeCurrent())>TimeStart && TimeHour(TimeCurrent())<TimeStop)
     {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+SL*Point,Bid-TakeProfit*Point,"",MAGICMA,0,Red);
      return;      
     }
//--- buy conditions //условия для покупки
   if(ma1>ma2 && Close[1]>ma1 && TimeHour(TimeCurrent())>TimeStart && TimeHour(TimeCurrent())<TimeStop)
     {
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask-SL*Point,Ask+TakeProfit*Point,"",MAGICMA,0,Blue);
      return;      
     }
//---
  }
//+------------------------------------------------------------------+
//| Check for close order conditions      //проверка условий для закрытия ордера                           |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double ma1;//медленная
   double ma2;//быстрая
//--- go trading only for first tiks of new bar// торговать толькона тике нового бара
   if(Volume[0]>1) return;
//--- get Moving Average //получение средних
   ma1=iMA(NULL,0,MovingPeriod1,MovingShift1,MODE_SMA,PRICE_CLOSE,0);//медленная
   ma2=iMA(NULL,0,MovingPeriod2,MovingShift2,MODE_SMA,PRICE_CLOSE,0);//быстрая
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //--- check order type //проверка типа ордера
      if(OrderType()==OP_BUY)
        {
         if(Close[1]<ma2 && Open[2]>Close[1] && ma1<ma2) //(Open[1]>ma && Close[1]<ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Close[1]>ma2 &&  Open[2]<Close[1] && ma1>ma2)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| OnTick function  //функция нового тика                                                |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false)
      return;
//--- calculate open orders by current symbol
   if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
   else                                    CheckForClose();
//---
  }
//+------------------------------------------------------------------+
 
Sergey Zaitsev:
Olá. Pode utilizar esta estratégia para escrever um conselheiro https://www.youtube.com/watch?v=V58JIhy2rw4. Ou tem algum conselheiro que estagna no lugar ou está ligeiramente no black.... Para rendimentos com desconto no site fxcash.ru. Obrigado. Se esse sinal sonoro estiver em Ek https://vk.com/id16112208 ou em privado.

Veja-se o ramo Avalanche, há conselheiros para este TS.
 

Olá!

Posso ter alguma ajuda? O Consultor Especialista está a recuperar negócios a cada tique. Como é que escrevo código para tirar cerca de 5 ofícios ou apenas tantos quantos eu quiser?

int tp=50;

sl=200;

lote duplo externo=0,01;

oid OnTick()

{

OrderSend("USDJPY",OP_SELL,lote,Bid,0,Ask+sl*Point,Ask-tp*Point, "Batsasho",1,0,Red);

}

O que devo alterar ou acrescentar ao código?

Obrigado!

 

Se eu não dificultar, pode responder ***

Obrigado!

 

Tentei refazer os modelos prontos, mas no final eles dão alguns erros, tudo o que preciso é de uma coruja:

1) abre uma posição de compra se a vela fechada estiver em alta, e uma posição de venda se a vela fechada estiver em baixa.

2) e assim por diante depois de TODOS os candelabros.

Tenho a segunda condição: não funciona.

Se alguém puder ajudar, ficar-lhe-ei muito grato.

 
alstefanov:

Posso ter alguma ajuda? O Consultor de Peritos recuperará as transacções a cada tick. Como é que eu escrevo o código para desenhar cerca de 5 ofícios ou apenas quantos eu quiser?

O que devo alterar ou acrescentar ao código?

Devo acrescentar um laço e limitar o número de ordens antes de executar OrderSend.