[¡Archivo!] Escribiré un asesor GRATIS - página 19

 

Soy nuevo en la programación, aunque se podría decir que soy un completo tonto. Pero es interesante probar mi mano en ello. Estoy tratando de escribir un simple Asesor Experto que trabajaría un día a la semana. Por ejemplo, el lunes abre a las 00.00 horas y cierra a las 24.00 horas. Lo entiendo claramente en partes separadas pero no puedo montarlo todo en un programa. Si sabes dónde conseguir (descargar) el Asesor Experto en este tema. Lo quiero como muestra.

 
asd05:

Soy nuevo en la programación, aunque se podría decir que soy un completo tonto. Pero es interesante probar mi mano en ello. Estoy tratando de escribir un simple Asesor Experto que trabajaría un día a la semana. Por ejemplo, el lunes abre a las 00.00 horas y cierra a las 24.00 horas. Lo entiendo claramente en partes separadas pero no puedo montarlo todo en un programa. Si sabes dónde conseguir (descargar) el Asesor Experto en este tema. Lo quiero como muestra.


Se desaconseja el spam. Pueden prohibirte la entrada.
 
asd05:

Soy nuevo en la programación, aunque se podría decir que soy un completo tonto. Pero es interesante probar mi mano en ello. Estoy tratando de escribir un simple Asesor Experto que trabajaría un día a la semana. Por ejemplo, el lunes abre a las 00.00 horas y cierra a las 24.00 horas. Lo entiendo claramente en partes separadas pero no puedo montarlo todo en un programa. Si sabes dónde conseguir (descargar) el Asesor Experto en este tema. Lo quiero como muestra.

Este es un ejemplo de un primitivo "cazador nocturno". Funciona por defecto de 21 a 8 horas todos los días.
En la versión más sencilla, inténtalo más o menos así:

//+------------------------------------------------------------------+
//|                                                    222222222.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


extern int   Magic = 31295;
 extern int     Start=21;//начало работы вечером
extern int      End=8; //конец работы утром
extern int      SL=410;
extern int      TP=280;
extern double  Lot=0.1;

extern string  __________ = "=== Функция Трейлинг Стоп ====";
extern bool      UseTrailing = false;//Выключатель трейлинг стопа
extern int    MinProfit = 200;//порог включения трейлин стопа
extern int    TrailingStop = 150;// величина трейлинг стопа
extern int    TrailingStep = 10; // шаг трейлинг стопа 

bool Trade;
bool  gbNoInit    = False;   // Флаг неудачной инициализации

//----------------------------------------------------
int init()
{
//-----------------------------------------------------------
gbNoInit=False;  
if (!IsTradeAllowed()) {
    Message("Для нормальной работы советника необходимо\n"+
            "Разрешить советнику торговать");
    gbNoInit=True; return;
  }
  if (!IsLibrariesAllowed()) {
    Message("Для нормальной работы советника необходимо\n"+
            "Разрешить импорт из внешних экспертов");
    gbNoInit=True; return;    }
}
//-----------------------------------------------------

//===================================================
int start() {// функция СТАРТ

if (UseTrailing) TrailPositions(); // выключатель трейлинг стопа


if ( Hour()>Start || Hour()<End )//если время - больше  Start или меньше End
    Trade=true;    else Trade=false;//то торговля разрешена
Comment ("Торговля разрешена с ",Start ," до ",End);
//---------------------------------------------------
if (Trade && NumberOfPositions(NULL,OP_BUY,Magic)<1) {
//если тоговля разрешена и нет откр. длинных позиций
   OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-SL*Point,Ask+TP*Point,"хи - хи",Magic,0,SkyBlue);
                                               }
//---------------------------------------------------   
 if (Trade && NumberOfPositions(NULL,OP_SELL,Magic)<1) {
//если тоговля разрешена и нет откр. селл-  позиций 
   OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+SL*Point,Bid-TP*Point,"тра-ля-ля",Magic,0,Green);
                                                   }
 //-----------------------------
 return (0);                                      
}//конец функции СТАРТ 


//жжжжжжжжжжжжжжжжжжжжж Пользовательские функции жжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru/                  |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество позиций.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfPositions(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), kp=0;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++)                                    {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))      {
      if (OrderSymbol()==sy || sy=="")                   {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op)                   {
            if (mn<0 || OrderMagicNumber()==mn) kp++;
          }}}}}   return(kp); }

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
 void TrailPositions() // функция трейлинг стоп
{
  int Orders = OrdersTotal();
  for (int i=0; i<Orders; i++) {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;
     if (OrderMagicNumber() == Magic ){    
     if (OrderType() == OP_BUY )  {
      if (Bid-OrderOpenPrice() > MinProfit*Point) {
        if (OrderStopLoss() < Bid-(TrailingStop+TrailingStep-1)*Point) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Bid-TrailingStop*Point,
                                                     OrderTakeProfit(), 0, Blue);
        }      }    }
    if (OrderType() == OP_SELL)  {
      if (OrderOpenPrice()-Ask >MinProfit*Point) {
        if (OrderStopLoss() > Ask+(TrailingStop+TrailingStep-1)*Point 
                                                       || OrderStopLoss() == 0) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Ask+TrailingStop*Point,
                                                      OrderTakeProfit(), 0, Blue);
        }   }   }    }   }  }

//+----------------------------------------------------------------------------+
//|  Вывод сообщения в коммент и в журнал                                      |
//+----------------------------------------------------------------------------+
void Message(string m) {
  Comment(m);
  if (StringLen(m)>0) Print(m);
}
 

¡hola! ¿todavía se está escribiendo? :) se ha escrito tanto aquí ya.... me gustaría escribir un pequeño tipster ...uno sencillo, sobre dos mashmas y Momentum, y seguiré si alguien quiere hacerlo.

buena suerte
 

El simple Enterra_Forex_Star_EA_3.1 Expert Advisor necesita un poco de ajuste.

Opera en un momento determinado utilizando uno de los dos RSI y pone una ganancia virtual en seis temporizadores.

En caso de perder el precio hay una función para abrir órdenes adicionales en la misma dirección cuando el número de puntos supera un determinado valor (algo así como el promedio).

El problema: tengo que abrir posiciones adicionales sólo en el momento especificado de la operación y no recalcula el take profit.

que tengo que hacer:

Cuando un precio baja de una dirección rentable de una orden abierta, entonces se abrirá una orden (y luego algunas más - el número debe ser ajustado) del mismo volumen en la misma dirección independientemente del "tiempo de trabajo" en tales condiciones (pero no "o" juntos):

-se ha superado el número mínimo de puntos por el que el precio debe ser negativo (ajustable)

El indicador I-Regajustable (adjunto) debe "girar" en la dirección de las ganancias (se puede despreciar el ancho del canal)

Deberíamos añadir un mecanismo de promediación con la primera orden abierta (y las siguientes) en forma de "x puntos desde el punto de equilibrio" y también una posibilidad de tomar la toma en todas las órdenes de "promediación", como en la primera orden (teniendo en cuenta que cambia según el temporizador).

Todo en relación con las cotizaciones de 4/5 dígitos

Todo esto es casi como se debe hacer en Ilan_RSI_mm_extr193 (adjunto como donante) Sólo que no entiendo este lenguaje en absoluto.

Ejemplo:

Hora especificada de negociación (apertura de posiciones) de 10 a 12

a las 11:10 am, el EA abre una orden de venta a 1.5000 - el precio sube y como mencioné en la configuración a través de 20 pips, es decir, 1.5020 a las 11:20 am, la segunda orden de venta se abre con el mismo volumen. Ambas se cierran por la retirada virtual de la primera, que se establece por 6 temporizadores en el EA (aunque en realidad se establece de forma diferente), por ejemplo, la retirada es de 10 puntos y el EA se cierra a 6 puntos, en definitiva no es muy importante. Así que se cierran cuando el precio alcanza el punto de toma del primero (por ejemplo, 1,4094).

Ya lo tengo así. Debería colocar una orden adicional cuando el precio pase no menos de 20 puntos y sólo si el indicador I-Reg (configurado por mí) muestra una inversión de tendencia.

Tengo que añadir los parámetros de promediación, como ya he dicho.

Hay una cosa más:

Si la orden se abre a las 11:50, digamos, de venta, y el precio sube fuertemente después de las 12:00, el EA no abre órdenes en absoluto - debemos corregir esto para abrir el promedio.

Quería ser más claro, pero se ha complicado un poco.

¿Puede alguien hacerlo?

Gracias.

Archivos adjuntos:
enterra.rar  23 kb
 
leonid553:

Este es un ejemplo de un primitivo "cazador nocturno". Funciona por defecto de 21 a 8 horas todos los días.
En la versión más sencilla, inténtalo más o menos así:


Gracias, lo intentaré.
 
Buenas tardes, tengo algunas ideas interesantes que me gustaría implementar en un EA. Ponte en contacto conmigo en mrforex@mail.ru. Se lo agradecería mucho.
 

Hola si es posible por favor escriba un Asesor Experto basado en dos Muwings para la apertura de operaciones en cruces Muchas gracias y disculpen por utilizar su valioso tiempo ejemplo en la imagen adjunta de antemano MUCHAS GRACIAS de antemano chughoy@list.ru


 
Buenas tardes. Necesito un EA que me avise cuando se crucen ciertos dos de los cuatro muwings. Estoy dispuesto a pagar. Para contactar: shurik302(dog)gmail.com
 
molodec8:

La estrategia aporta hasta un 40 por ciento al mes

Mejor DESDE 5 que ANTES 40% ))))