Escribiré un asesor gratuito de mql4 - página 3

 
Andrey Vaskin:
Para ganar experiencia en esta área, voy a escribir 25 EAs gratis para sus ideas y estrategias interesantes

1.Mira la taza de preciosFORTS.


2.Comprar si en 1 minuto la barra roja fue 3 veces* la barra azul. Vender si es lo contrario.


3.Cerrar una posición comprada - si la barra azul fue 3 veces la barra roja en 1 minuto. Cerrar una posición vendida, si en 1 minuto, la barra roja fue 3 veces mayor que la barra azul.


4) El ciclo se repite.

---


*Significa 3 veces o más.

"3 veces" y "1 minuto" deben establecerse en los parámetros del búho.

También se necesita un StopLoss.

Una imagen de la pila (volumen de órdenes de venta/compra):

Los volúmenes también pueden tomarse de la visión general del mercado:

 
Alexander Pavlov:

1.Mira el cristal del precio.


2.Comprar si en 1 minuto la barra roja fue 3 veces* la barra azul. Vender si es lo contrario.


3.Cerrar una posición comprada - si la barra azul es 3 veces la barra roja en 1 minuto. Cerrar una posición vendida, si en 1 minuto, la barra roja fue 3 veces mayor que la barra azul.


4) El ciclo se repite.

---


*Significa 3 veces o más.

"3 veces" y "1 minuto" deben establecerse en los parámetros del búho.

También se necesita un StopLoss.

Una imagen de la pila (volumen de órdenes de venta/compra):

Los volúmenes también pueden tomarse de la visión general del mercado:

Esto es MT5, el autor sólo pidió tareas bajo MT4.
 
Vitaly Muzichenko:

Se trata de estocásticos, RSI MACD y otras porquerías llamadas osciladores, dibujan la historia muy bien, pero no he conocido un solo Asesor Experto que haya mantenido siquiera el equilibrio, y menos aún que haya obtenido beneficios.

Pero es de esperar que la gente siga produciendo algo con estos indicadores inútiles.

Me parece muy extraño que pasen de una versión de MT a otra durante varios años. ¿Quién los necesita? Probablemente sólo para un código de programa de muestra, pero la gente piensa que para el comercio en ellos ))))

¿Basura? Ok, muéstrame un ejemplo de NO basura. Además, que no hayas visto algo no significa que no exista.
 
Tapochun:
¿Basura? Bueno, dame un ejemplo de algo que NO sea basura. Además, que no hayas visto algo no significa que no esté ahí.
Lo único que he visto que no es basura es en los patrones de velas.
 
Vitaly Muzichenko:
Lo único que he visto que no drena es en patrones de velas.
El mío tampoco está drenando, y esa es su palabra. y no hay patrones allí.
 
Leanid Aladzyeu:
El mío tampoco está al ras, y esas son sus palabras. y no hay patrones.
No me refería a las matemáticas en este momento. Escribí sobre el indicador puro. El tuyo es bueno.
 

ayudar a arreglar

EA pone 4 órdenes pendientes

2 stop de compra y venta

2 límite de compra y venta

no sé cómo intercambiar órdenes pendientes, pero no sé a qué distancia debe colocarse una orden

es lo mismo con las posiciones de compra y de venta

Después de que todos los pedidos sean realizados, se debe realizar uno nuevo antes de que se active un nuevo pedido

Tengo muchos lotes perdedores, pero serían menos si cambiara de orden


//| iiiiiiiiiiiiii_buy_sell.mq4 |||

//| |

//| |

//+------------------------------------------------------------------+

extern int N = 100; // Las bahías y las ventas (contando por separado) pueden tener cien piezas cada una


extern double Lotes = 0.01; // lote


extern int PROF = 100; // stop de arrastre, comienza con cien pips de beneficio

extern int TS = 200; // tirar en la parada detrás del precio

extern int STEP = 200; // distancia entre dos órdenes de stop

extern int TP = 10000; //tomar orden

extern int SL = 10000; // tomar pedidos

extern bool Buy = false; // sólo comprar

extern bool Sell = true; // sólo vender

extern double PROSADKA = 0.5; // cuando los fondos propios son iguales o inferiores a esta fracción del saldo

extern int magicbuy = 777;

extern int magicsell = 888;


int M;

doble buystop_OP, sellstop_OP;

doble selllimit_OP, buylimit_OP;


int inicio()

{

// ---------------------------------------------------------------------


// ---------------------------------------------------------------------

// ver qué pedidos tenemos:

int compra = 0,venta = 0;

int buystop = 0,sellstop = 0;

int selllimit = 0,buylimit = 0;

int compras = 0, ventas = 0;

int Total = 0;

for(int i = 0; i < OrdersTotal(); i ++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderMagicNumber() != magicbuy && OrderMagicNumber() != magicsell) continue;

if(OrderType() == OP_BUYSTOP)

buystop = OrderTicket();

if(OrderType() == OP_BUYLIMIT)

buylimit = OrderTicket();

if(OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT || OrderType() == OP_BUY)

compra ++;

if(OrderType() == OP_SELLSTOP)

sellstop = OrderTicket();

if(OrderType() == OP_SELLLIMIT)

selllimit = OrderTicket();

if(OrderType() == OP_SELLSTOP | OrderType() == OP_SELLLIMIT | OrderType() == OP_SELL )

vende ++;

Total ++;

}

// ---------------------------------------------------------------------

int LET = 0;

si (AccountEquity()/AccountBalance() < PROSADKA)

LET = 1; // si la reducción es alta - prohibición de colocar nuevas posiciones

// ---------------------------------------------------------------------

// establecer nuevas operaciones :

if(LET == 0 && TimeCurrent() && M != iTime(Symbol(),1,0)) // una vez por minuto

{

if ( buystop < 1 && buys < N && Buy == true)

{

buystop_OP = NormalizeDouble(Ask+STEP*Point,Digits);

buystop = OrderSend(Symbol(),OP_BUYSTOP,Lots,buystop_OP,10,buystop_OP-SL*Point,buystop_OP+TP*Point,NULL,magicbuy,0,Blue);

}

if ( buylimit < 1 && buys < N && Buy == True)

{

buylimit_OP = NormalizeDouble(Ask-STEP*Point,Digits);

buylimit = OrderSend(Symbol(),OP_BUYLIMIT,Lots,buylimit_OP,100,buylimit_OP-SL*Point,buylimit_OP+TP*Point,NULL,magicbuy,0,Red);

}

if ( sellstop < 1 && sells < N && Sell == true)

{

sellstop_OP = NormalizeDouble(Bid-STEP*Point,Digits);

sellstop = OrderSend(Symbol(),OP_SELLSTOP,Lots,sellstop_OP,10,sellstop_OP+SL*Point,sellstop_OP-TP*Point,NULL,magicsell,0,Red);

}

if ( selllimit < 1 && sells < N && Sell == True)

{

selllimit_OP = NormalizeDouble(Bid+STEP*Point,Digits);

selllimit = OrderSend(Symbol(),OP_SELLLIMIT,Lots,selllimit_OP,100,selllimit_OP+SL*Point,selllimit_OP-TP*Point,NULL,magicsell,0,Blue);

}

M = iTime(Symbol(),1,0);

}

// ---------------------------------------------------------------------

// si la orden está más lejos que TS del precio, arrástrela más cerca :

if (OrderSelect(buystop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYSTOP && OrderOpenPrice() > Ask + TS*Point)

OrderModify(buystop,Ask + TS*Point,Ask + TS*Point-SL*Point,Ask + TS*Point+TP*Point,0,DeepSkyBlue);

if (OrderSelect(sellstop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLSTOP && OrderOpenPrice() < Bid - TS*Point)

OrderModify(sellstop,Bid - TS*Point,Bid - TS*Point+SL*Point,Bid - TS*Point-TP*Point,0,Orange);

if (OrderSelect(selllimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLLIMIT && OrderOpenPrice() > Bid + TS*Point)

OrderModify(selllimit,Bid + TS*Point,Bid + TS*Point+SL*Point,Bid + TS*Point-TP*Point,0,DeepSkyBlue);

if (OrderSelect(buylimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYLIMIT && OrderOpenPrice() < Ask - TS*Point)

OrderModify(buylimit,Ask - TS*Point,Ask - TS*Point-SL*Point,Ask - TS*Point+TP*Point,0,Orange);

// ---------------------------------------------------------------------

// si el beneficio de la orden es mayor que el stop PROF y está más lejos que TS del precio, arrastra este stop detrás del precio:

for(i = 0; i < OrdersTotal(); i ++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if (OrderType() == OP_BUY && (Ask - OrderOpenPrice())/Point > PROF && OrderStopLoss() < NormalizeDouble(Ask - TS*Point,Digits))

OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - TS*Point,Digits),OrderTakeProfit(),0,Blue);

if (OrderType() == OP_SELL && (OrderOpenPrice() - Bid)/Point > PROF && OrderStopLoss() > NormalizeDouble(Bid + TS*Point,Digits))

OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid + TS*Point,Digits),OrderTakeProfit(),0,Red)

}

return(0);

}

 

El código debe tener el siguiente formato (SRC):

//|                                   iiiiiiiiiiiiiiiii_buy_sell.mq4 |

//|                                                                  |

//|                                                                  |

//+------------------------------------------------------------------+

extern int N = 100;       // баев и сэллов (считаем отдельно) разрешаем по стока штук иметь



extern double Lots = 0.01;  // лот



extern int PROF = 100;    // тралить стоп начнем с профита во стока пипсов

extern int TS = 200;      // тащить его станем на стока сзади пип за ценой

extern int STEP = 200;    // расстояние меджу отложками

extern int TP = 10000;     // тейк ордеров

extern int SL = 10000;     // тейк ордеров

extern bool Buy = false;    // только покупать

extern bool Sell = true;   // только продавать

extern double PROSADKA = 0.5;   // когда эквити равно или менее вот такой части от баланса

extern int magicbuy = 777;

extern int magicsell = 888;



int M;

double buystop_OP, sellstop_OP;

double selllimit_OP, buylimit_OP;



int start()

  {

             // ---------------------------------------------------------------------

         



             // ---------------------------------------------------------------------

             // смотрим, какие ордера у нас есть:

                 int buy = 0,sell = 0;

                 int buystop = 0,sellstop = 0;

                 int selllimit = 0,buylimit = 0;

                 int buys = 0, sells = 0;

                 int Total = 0;

                 for(int i = 0; i < OrdersTotal(); i ++)

                   {

                     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

                        if(OrderMagicNumber() != magicbuy && OrderMagicNumber() != magicsell) continue;

      

                        

                        

                           if(OrderType() == OP_BUYSTOP)

                              buystop = OrderTicket();

                                

                           if(OrderType() == OP_BUYLIMIT)

                              buylimit = OrderTicket();

                              

                           if(OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT || OrderType() == OP_BUY)   

                              buys ++;

                           

                           if(OrderType() == OP_SELLSTOP)

                              sellstop = OrderTicket();

                              

                           if(OrderType() == OP_SELLLIMIT)

                              selllimit = OrderTicket();

                              

                            if(OrderType() == OP_SELLSTOP || OrderType() == OP_SELLLIMIT || OrderType() == OP_SELL )

                              sells ++;    

                        

                        Total ++;       

                   }

             

             

           

             // ---------------------------------------------------------------------

                 int LET = 0;

                 if (AccountEquity()/AccountBalance() < PROSADKA)

                    LET = 1;  // если просадки до фига - запрет на выставление новых отложек

           

             // --------------------------------------------------------------------- 

             // выставление отложек :

             if(LET == 0 && TimeCurrent() && M != iTime(Symbol(),1,0)) // раз в минуту

               {   

                 

                 if ( buystop < 1 && buys < N && Buy == true)

                     {

                        buystop_OP = NormalizeDouble(Ask+STEP*Point,Digits);

                        buystop = OrderSend(Symbol(),OP_BUYSTOP,Lots,buystop_OP,10,buystop_OP-SL*Point,buystop_OP+TP*Point,NULL,magicbuy,0,Blue);

                     }

                     

                if ( buylimit < 1 && buys < N && Buy == True)

                     {

                        buylimit_OP = NormalizeDouble(Ask-STEP*Point,Digits);

                        buylimit = OrderSend(Symbol(),OP_BUYLIMIT,Lots,buylimit_OP,100,buylimit_OP-SL*Point,buylimit_OP+TP*Point,NULL,magicbuy,0,Red);     

                     }

                     

                 if ( sellstop < 1 && sells < N && Sell == true)

                     {

                        sellstop_OP = NormalizeDouble(Bid-STEP*Point,Digits);

                        sellstop = OrderSend(Symbol(),OP_SELLSTOP,Lots,sellstop_OP,10,sellstop_OP+SL*Point,sellstop_OP-TP*Point,NULL,magicsell,0,Red);

                     }

                

                if ( selllimit < 1 && sells < N && Sell == True)

                     {

                       selllimit_OP = NormalizeDouble(Bid+STEP*Point,Digits);

                       selllimit = OrderSend(Symbol(),OP_SELLLIMIT,Lots,selllimit_OP,100,selllimit_OP+SL*Point,selllimit_OP-TP*Point,NULL,magicsell,0,Blue);

                     }

                     

                

                

                 M = iTime(Symbol(),1,0);

               }

             

             // --------------------------------------------------------------------- 

             // еси отложки дальше чем TS от цены, подтаскиваем их поближе :

             if (OrderSelect(buystop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYSTOP && OrderOpenPrice() > Ask + TS*Point)

                OrderModify(buystop,Ask + TS*Point,Ask + TS*Point-SL*Point,Ask + TS*Point+TP*Point,0,DeepSkyBlue);

             

             if (OrderSelect(sellstop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLSTOP && OrderOpenPrice() < Bid - TS*Point)

                OrderModify(sellstop,Bid - TS*Point,Bid - TS*Point+SL*Point,Bid - TS*Point-TP*Point,0,Orange);

             

             if (OrderSelect(selllimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLLIMIT && OrderOpenPrice() > Bid + TS*Point)

                OrderModify(selllimit,Bid + TS*Point,Bid + TS*Point+SL*Point,Bid + TS*Point-TP*Point,0,DeepSkyBlue);

             

             if (OrderSelect(buylimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYLIMIT && OrderOpenPrice() < Ask - TS*Point)

                OrderModify(buylimit,Ask - TS*Point,Ask - TS*Point-SL*Point,Ask - TS*Point+TP*Point,0,Orange);

            

             // --------------------------------------------------------------------- 

             // еси профит ордера больше PROF  стоп его дальше чем TS от цены, тралим этот стоп за ценой :

             for(i = 0; i < OrdersTotal(); i ++)

                   {

                     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

                     

                        if (OrderType() == OP_BUY && (Ask - OrderOpenPrice())/Point > PROF && OrderStopLoss() < NormalizeDouble(Ask - TS*Point,Digits))

                           OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - TS*Point,Digits),OrderTakeProfit(),0,Blue);

             

                        if (OrderType() == OP_SELL && (OrderOpenPrice() - Bid)/Point > PROF && OrderStopLoss() > NormalizeDouble(Bid + TS*Point,Digits))

                           OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid + TS*Point,Digits),OrderTakeProfit(),0,Red);

             

                   }

             

          

   return(0);

  }
 
Andrey Vaskin:

Para ganar experiencia en esta área, voy a escribir 25 EAs gratis para sus ideas y estrategias interesantes

Sólo quedan 19 EAs

Buenas tardes, he vuelto a escribir en otro hilo aquí.


Tengo una estrategia para las opciones binarias. En general su esencia es la siguiente: usando unamedia móvil con un periodo de 20 identifico la tendencia, usando el ADX defino su fuerza (normalmente a un valor visual superior a 25 lo defino como fuerte), usando el análisis gráfico defino los puntos de entrada (normalmente estrellas matutinas, vespertinas, martillos y "frutas colgantes", no considero los doji con sombras simétricas porque creo que son contradictorios). Por el cierre de una vela con el modelo requerido entro a las 5 (comprobé las estadísticas manualmente en 6 meses en D1: como mucho una señal durante 6 meses. H4 no se considera debido a la diferente hora de cierre de la geometría de la vela en diferentes corredores).

En general, en las estadísticas recibidas por mí en el promedio de cada herramienta 0,7-3% para un mes (en la transacción siempre se introdujo el 1% del depósito) escaneé manualmente 5 herramientas (y el corredor que utilizo en las opciones tiene 42 herramientas, manualmente todas las estadísticas para trabajar a través de mucho trabajo debe ser hecho). No tengo en cuenta la influencia de las noticias en los resultados. Más tarde puedo publicar archivos del terminal con mis marcas, donde entré, a qué hora de expiración obtuve beneficios y donde perdí, etc. Mi broker utiliza un terminal MT4. ¿Quizás alguien tenga alguna sugerencia para mejorar esta estrategia?

En la descripción describí la idea general, sería bueno que el Asesor Experto pudiera cambiar automáticamente el valor de la transacción para cada período de tiempo (por ejemplo, una vez al mes).

 
Adelaur:
A veces el cursor salta al campo de la cita al responder y no sale de él. Cómo solucionarlo:Foro: el cursor salta a la cita cuando respondes