Redactaré un asesor de forma gratuita - página 63

 
Hola. ¿Se puede utilizar esta estrategia para escribir un asesor https://www.youtube.com/watch?v=V58JIhy2rw4. O tiene algún asesor que se estanca en el lugar o está ligeramente en el negro.... Para las ganancias en el reembolso en el sitio fxcash.ru. Gracias. Si hay algo, póngase en contacto conmigo en facebook https://vk.com/id16112208 o en persona.
Метод торговли на 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:
Hola. ¿Puede escribir un asesor experto en esta estrategia https://www.youtube.com/watch?v=V58JIhy2rw4. O tal vez usted tiene un asesor experto, que se estanca en el lugar o va a los beneficios un poco.... Para las ganancias en el reembolso en el sitio fxcash.ru. Gracias. Si es así, póngase en contacto con https://vk.com/id16112208 o en privado.
Sí, escribí este tipo de búhos.
****
Para una rebaja, está bien. Consigue muchos lotes sin mucha reducción.
Pero durante un piso largo, puede perder ...
 
Entiendo que no es que sea un piso largo, sino exactamente cuándo se expande el piso. ¿Es posible conseguir uno?
 
¿está bien su servicio de reembolso globegain.com? ¿por qué forex4u da tanto - $18.6 por lote....insta - $14.3... ¿es real?
 

¡Buenas tardes!

He decidido robotizar un poco mis operaciones. Utilicé un Asesor Experto de tendencia del terminal MT4"Moving Average". He decidido utilizar mi propio EA del terminal MT4 y he hecho algunas ligeras modificaciones. Añadí una máscara más, cambié las condiciones de entrada y salida, añadí el stop y el profit y limité el tiempo de apertura. Me gustaría añadir más.

1) La capacidad de abrir dos órdenes a la vez con stop loss ajustable, take profit, mover a pérdida cero.

2) Número ajustable de entradas por día.

3) Posibilidad ajustable de entrar al día siguiente cuando una operación está abierta.

4)Salida ajustable por stop loss, no loss o take profit.

5)Eliminar el cálculo del riesgo máximo. (Necesidad particular no la veo, además no entiendo como calcula el riesgo, la impresión que desde el fondo, se abrieron lotes luego 0,10 luego 1,00)

6) No funciona correctamente en el par de divisas USDJPY

Quizás haya que corregir algo, limpiar para mejorar el trabajo de la EA. Ayuda o consejos.

Trabaja en más de diez gráficos simultáneamente, en cada ventana del gráfico del par de divisas tiene su propio EA. Se adjunta el código. Gracias a todos los que responden.

//+------------------------------------------------------------------+
//|                                                      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:
Hola. ¿Se puede utilizar esta estrategia para escribir un asesor https://www.youtube.com/watch?v=V58JIhy2rw4. O tiene algún asesor que se estanca en el lugar o está ligeramente en el negro.... Para las ganancias en el reembolso en el sitio fxcash.ru. Gracias. Si ese pitido en Ek https://vk.com/id16112208 o en privado.

Mira la rama Avalancha, hay asesores para este TS.
 

¡Hola!

¿Pueden ayudarme? El Asesor Experto está recuperando operaciones cada tick. ¿Cómo escribo el código para quitar unos 5 oficios o sólo los que quiera?

extern int tp=50;

extern int sl=200;

extern double lot=0.01;

oid OnTick()

{

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

}

¿Qué debo cambiar o añadir al código?

Gracias.

 

Si no te lo pongo difícil puedes responder ***

Gracias.

 

He intentado rehacer las plantillas ya hechas, pero al final dan un par de errores, sólo me falta un búho:

1) abre una posición de compra si la vela cerrada es alcista, y una posición de venta si la vela cerrada es bajista.

2) y así sucesivamente después de CADA vela.

Tengo la segunda condición no funciona.

Si alguien puede ayudar, le estaré muy agradecido.

 
alstefanov:

¿Pueden ayudarme? El Asesor Experto está recuperando operaciones en cada tick. ¿Cómo escribo el código para dibujar unas 5 operaciones o sólo las que quiera?

¿Qué debo cambiar o añadir al código?

Debería añadir un bucle y limitar el número de órdenes antes de ejecutar OrderSend.