Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 350

 
Forexman77:

En la imagen, he marcado con una flecha dónde debería estar la salida. No entiendo cuál es el problema. Entramos y recordamos la hora,

A continuación, salir cuando el tiempo es más largo que la entrada con una compensación por un período y el precio está por debajo de la MA de 3 días min.

El código es el siguiente:

¿Qué sugieres?

¡Vender cerca en el Ascus! Es más alto. Pedir-Ofertar=difundir;

Corrija esta línea del código:

if  (Bid <= MA_2_t)

// на

if  (Ask <= MA_2_t)

Entonces se cerrará como se desee, pero puede invertirse en cualquier momento. Tenemos que contentarnos con poco.

 
Forexman77:


En la imagen, he marcado con una flecha dónde debería estar la salida. No entiendo cuál es el problema. Entramos y recordamos la hora,

A continuación, salir cuando el tiempo es más largo que la entrada con una compensación por un período y el precio está por debajo de la MA de 3 días min.

El código es el siguiente:

¿Qué te parece?


Me refiero a que sería bueno publicar capturas de pantalla donde se vea el precio y el plazo. Tal vez hay pipsing en M1 y el servidor simplemente no tiene tiempo para procesar la orden a tiempo.


Y en lugar de t=Time[0]; mejor utilizar OrderOpenTime().

 
evillive:

Si no es demasiado secreto, quiero decir que sería bueno publicar capturas de pantalla donde se puedan ver los precios y los plazos. Tal vez hay pipsing en M1 y el servidor simplemente no tiene tiempo para procesar la orden.


Utilice OrderOpenTime() en lugar de t=Time[0];.

¡Eureka! Comprendí por qué.

señal > 0,006 casi siempre, por lo que sigue actualizando t=Time[0]; y la operación no se cierra.

Pongo t=Time[0]; en el bloque donde se anuncia el hecho de la apertura de una posición.

 

Hola a todos, ¿cómo se comporta el EA que se está probando contra los gaps? Es decir, en la prueba muestra buenas ganancias, pero en la demo lleva dos días haciendo gapping de todo :(.

 

Hola a todos.

He hecho un EA cruzando dos EMAs, este es mi primer EA y me temo que he cometido algunos errores tontos, por lo que pido a los profesionales que revisen el código y me den algún consejo si algo está mal.

Este EA debe operar en el intercambio de bitcoin, el precio puede saltar un 30% por día, por lo que stoploss y takeprofit debe estar en el porcentaje del precio.

Lo he probado en la cuenta demo, parece que funciona, pero me da miedo usarlo en la cuenta real, el lote mínimo es de unos 7 dólares, y la cuenta cent no tiene broker.

Todavía no he adjuntado el trailing stop, y voy a comparar la diferencia de la EMA no con cero, sino con algún valor pequeño, para evitar operaciones frecuentes cuando las curvas corren paralelas.

El programa está compuesto en su mayor parte por fragmentos extraídos de ejemplos y tutoriales, por lo que me preocupa haber metido la pata en alguna parte al montarlo.

Variables:

#property copyright "me"
#property link      "killnosock.net"
extern int SlowEma = 21;
extern int FastEma = 10;
extern int MaxRisk = 100;// % депо которое будет использоваться для открытия ордера
extern int  TakeProfit=100;
extern int  StopLoss=100;
extern int Slippage = 10;

int LastBars = 0;

int init(){return(0);}
int deinit() {return(0);}

Esta función define el tamaño del lote:

double GetLot(int Risk)
{double Free    =AccountFreeMargin();
 double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
 double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
 double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
 double Step    =MarketInfo(Symbol(),MODE_LOTSTEP);
 double Lot     =MathFloor(Free*Risk/100/One_Lot/Step)*Step;
 if(Lot<Min_Lot) Lot=Min_Lot;
 if(Lot>Max_Lot) Lot=Max_Lot;
 if(Lot*One_Lot>Free) {
 Alert(" free= ", AccountFreeMargin()," for one lot= ", MarketInfo(Symbol(),MODE_MARGINREQUIRED)," lot= ", Lot);
 return(0.0);}
return(Lot);}

Abrimos una orden aquí:

int NewOrder(int Cmd,double Lot)
{double TP=0; //takeprofit
 double SL=0; //stoploss
 double PR=0; //price
 color clr = CLR_NONE;
 while(!IsTradeAllowed()) Sleep(10);
 RefreshRates();
 if(Cmd==OP_BUY)
   {PR=Ask;
    if(TakeProfit>0) TP=Ask + Ask*TakeProfit/100;
    if(StopLoss>0) SL=Ask - Ask*StopLoss/100;
    if(SL<0) SL = 0;
    if(TP<0) TP = 0;
    clr = Green;}
 if(Cmd==OP_SELL)
   {PR=Bid;
    if(TakeProfit>0) TP=Bid - Bid*TakeProfit/100;
    if(StopLoss>0) SL=Bid + Bid*StopLoss/100;
    if(SL<0) SL = 0;
    if(TP<0) TP = 0;
    clr = Red;}
 int tic=OrderSend(Symbol(),Cmd,Lot,PR,Slippage,SL,TP,"",0,0,clr);
 if(tic<0) Print("Open order error: ",GetLastError());
return(tic);}

Aquí cerramos 1 o todas las órdenes

//CloseOrder
void CloseOrder()
{double PR=0;
 while(!IsTradeAllowed()) Sleep(10);
 RefreshRates();
 if(OrderType()==OP_BUY)  PR=Bid;
 if(OrderType()==OP_SELL) PR=Ask;
 if(!OrderClose(OrderTicket(),OrderLots(),PR,Slippage,CLR_NONE))
   Print("Order close error: ",GetLastError());
return;}

//Close all Orders
void CloseAllOrders()
{
  for(int i=OrdersTotal()-1;i>=0;i--)
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {
      CloseOrder();
     }
return;}

Esta función calcula la diferencia de dos EMAs

double EmaDiff(int shift)
   {
      double difference;
      difference = iMA(Symbol(),0,FastEma,0,MODE_EMA,PRICE_CLOSE,shift)
                 - iMA(Symbol(),0,SlowEma,0,MODE_EMA,PRICE_CLOSE,shift);
      return(difference);
   }

Y aquí está el cuerpo del programa

int start()
  {
double Lot;
    // действуем, когда открывается новая свечка
    if (LastBars == Bars) return(0);
    else LastBars = Bars;
      {         
         if ((EmaDiff(1) > 0) && (EmaDiff(2) < 0))
            {
               CloseAllOrders();
               Lot = GetLot(MaxRisk);
               NewOrder(OP_BUY,Lot);
            }
            
         if ((EmaDiff(2) > 0) && (EmaDiff(1) < 0))
            {
               CloseAllOrders();
               Lot = GetLot(MaxRisk);
               NewOrder(OP_SELL,Lot);
            }                    
      }
   return(0);
  }
 

Estimados señores ¡¡¡Hola a todos!!!

¡¡Ayúdame a hacer los tratos!! ¡Hay un juego con ofertas, lo bajé de un sitio donde había un concurso en el que el tipo con 10000 dólares durante un mes o una semana no recuerdo ganó 300 000 dólares! ¡¡Cómo puedo saber dónde cerró el trato!! Hora de apertura, precio, lote, par de divisas ¡¡¡todo ahí!!!

.........................................................................................................................................................................................................................................


¡HAY TANTOS OFICIOS, NO SÉ DONDE LOS CERRÓ TODOS!


Los resultados se muestran a partir de 2013-08-29 14:02:05(EET)


TRANSACCIÓN HORA TIPO LOTES SÍMBOLO PRECIO SWAP BENEFICIO

272984 2013-08-05 07:58:50 VENDER 1.00 EURAUD 1.49556 0 0

272986 2013-08-05 07:58:56 VENDER 1.00 EURAUD 1.49553 0 0

272988 2013-08-05 07:59:03 VENDER 1.00 EURAUD 1.49549 0 0

272999 2013-08-05 07:59:57 VENDER 1.00 EURAUD 1.49534 0 0

273002 2013-08-05 08:00:02 VENDER 1.00 EURAUD 1.4954 0 0

273004 2013-08-05 08:00:07 VENDER 1.00 EURAUD 1.4954 0 0

284429 2013-08-05 16:47:27 COMPRAR 1.00 EURAUD 1.48839 0 628.85

284432 2013-08-05 16:47:33 COMPRAR 1.00 EURAUD 1.48838 0 629.71

284433 2013-08-05 16:47:37 COMPRAR 1.00 EURAUD 1.48843 0 625.28

284435 2013-08-05 16:47:43 COMPRAR 1.00 EURAUD 1.48857 0 612.81

284439 2013-08-05 16:47:47 COMPRAR 1.00 EURAUD 1.48854 0 615.46

284442 2013-08-05 16:47:50 COMPRAR 1.00 EURAUD 1.48859 0 611.01

284443 2013-08-05 16:47:51 COMPRAR 1.00 EURAUD 1.48859 0 0

284447 2013-08-05 16:48:01 COMPRAR 1.00 AUDUSD 0.89056 0 0

284449 2013-08-05 16:48:09 VENDER 1.00 EURAUD 1.48735 0 -110.44

284451 2013-08-05 16:48:21 COMPRAR 1.00 AUDUSD 0.89061 0 0

284454 2013-08-05 16:48:25 COMPRAR 1.00 AUDUSD 0.8906 0 0

284458 2013-08-05 16:48:30 COMPRAR 1.00 AUDUSD 0.89058 0 0

284461 2013-08-05 16:48:34 COMPRAR 1.00 AUDUSD 0.89051 0 0

284465 2013-08-05 16:48:39 COMPRAR 1.00 AUDUSD 0.89052 0 0

284469 2013-08-05 16:48:43 COMPRAR 1.00 AUDUSD 0.89053 0 0

284472 2013-08-05 16:48:47 COMPRAR 1.00 AUDUSD 0.89051 0 0

284475 2013-08-05 16:48:51 COMPRAR 1.00 AUDUSD 0.89056 0 0

284479 2013-08-05 16:48:55 COMPRAR 1.00 AUDUSD 0.89056 0 0

284483 2013-08-05 16:48:59 COMPRAR 1.00 AUDUSD 0.89056 0 0

284487 2013-08-05 16:49:03 COMPRAR 1.00 AUDUSD 0.89058 0 0

284491 2013-08-05 16:49:08 COMPRAR 1.00 AUDUSD 0.89053 0 0

284492 2013-08-05 16:49:12 COMPRAR 1.00 AUDUSD 0.89053 0 0

286130 2013-08-05 16:51:55 BUY STOP 1.00 AUDUSD 0.8915 0 0

288418 2013-08-05 16:52:05 BUY STOP 1.00 AUDUSD 0.89255 0 0

293964 2013-08-05 16:52:14 BUY STOP 1.00 AUDUSD 0.8935 0 0

299297 2013-08-05 16:52:26 BUY STOP 1.00 AUDUSD 0.89459 0 0

299482 2013-08-05 16:52:35 BUY STOP 1.00 AUDUSD 0.89553 0 0

299533 2013-08-05 16:52:53 BUY STOP 1.00 AUDUSD 0.89655 0 0

299595 2013-08-05 16:53:02 BUY STOP 1.00 AUDUSD 0.89703 0 0

300040 2013-08-05 16:53:36 BUY STOP 1.00 AUDUSD 0.89751 0 0

300096 2013-08-05 16:53:46 BUY STOP 1.00 AUDUSD 0.898 0 0

300151 2013-08-06 07:54:49 VENDER 1.00 AUDUSD 0.89756 4.36 519.04

300153 2013-08-06 07:54:53 VENDER 1.00 AUDUSD 0.89749 4.36 512.04

300154 2013-08-06 07:54:58 VENDER 1.00 AUDUSD 0.89743 4.36 506.04

300156 2013-08-06 07:55:01 VENDER 1.00 AUDUSD 0.89738 4.36 501.04

300158 2013-08-06 07:55:05 VENDER 1.00 AUDUSD 0.89736 4.36 499.04

300160 2013-08-06 07:55:11 VENDER 1.00 AUDUSD 0.89772 4.36 535.04

300161 2013-08-06 07:55:15 VENDER 1.00 AUDUSD 0.89771 4.36 534.04

300163 2013-08-06 07:55:19 VENDER 1.00 AUDUSD 0.89765 4.36 528.04

300167 2013-08-06 07:55:36 VENDER 1.00 AUDUSD 0.89733 4.36 496.04

300169 2013-08-06 07:55:40 VENDER 1.00 AUDUSD 0.89733 4.36 496.04

300171 2013-08-06 07:55:44 VENDER 1.00 AUDUSD 0.89735 4.36 498.04

300173 2013-08-06 07:55:49 VENDER 1.00 AUDUSD 0.89732 4.36 495.04

300178 2013-08-06 07:55:52 VENDER 1.00 AUDUSD 0.89725 4.36 488.04

300181 2013-08-06 07:55:56 VENDER 1.00 AUDUSD 0.89714 4.36 477.04

 
FEAR:

Estimados señores ¡¡¡Hola a todos!!!

¡¡Ayúdame a hacer los tratos!! ¡Hay un juego con ofertas, lo bajé de un sitio donde había un concurso en el que el tipo con 10000 dólares durante un mes o una semana no recuerdo ganó 300 000 dólares! ¡¡Cómo puedo saber dónde cerró el trato!! Hora de apertura, precio, lote, par de divisas ¡¡¡todo ahí!!!

.........................................................................................................................................................................................................................................

¡HAY TANTOS OFICIOS, NO SÉ DONDE LOS CERRÓ TODOS!

No hay manera, no especifican la hora de cierre y el precio, no hay regalos ))))
 
evillive:
No hay manera, no especifican el precio de cierre a propósito, no hay free())


ENTIENDO PERO HAY UN LOTE Y UN PRECIO Y UNA COMPRA O VENTA POR EJEMPLO:


284429 2013-08-05 16:47:27 COMPRAR 1.00 EURAUD 1.48839 0 628.85

¡¡¡EL PRECIO ES 1.48839 PAR DE DIVISAS -EURAUD, LOTE 1 BROKER 5 MARCA!!! ¡¡¡GANANCIA 628 ES DECIR EL PRECIO SUBIÓ 628 PIPS!!! en el lote 1!!! quiero decir que si se puede mirar el historial, no lo entiendo, sinceramente la hora es casi las 17:00 pero el precio es mucho más bajo que este 1,48839!!! AUNQUE ESTE ES EL PRECIO DE CIERRE CONTÉ 7000 PIPS NO ENTIENDO COMO

 
FEAR:


ENTIENDO PERO HAY UN LOTE Y UN PRECIO Y UNA COMPRA O VENTA POR EJEMPLO:


284429 2013-08-05 16:47:27 COMPRAR 1.00 EURAUD 1.48839 0 628.85

¡¡¡EL PRECIO ES 1.48839 PAR DE DIVISAS -EURAUD, LOTE 1 BROKER 5 MARCA!!! ¡¡¡GANANCIA 628 ES DECIR EL PRECIO SUBIÓ 628 PIPS!!! en el lote 1!!! quiero decir que si se puede mirar el historial, no lo entiendo, sinceramente la hora es casi las 17:00 pero el precio es mucho más bajo que este 1,48839!!! INCLUSO SI ES EL PRECIO DE CIERRE CONTÉ 7000 PIPS NO ENTIENDO CÓMO ES POSIBLE


¿Dónde has contado 7000 pips? Es el precio de apertura, pero incluso si fuera el precio de cierre, un precio no es suficiente para contar algo allí, todavía se necesitan los dos. Creo que es un fake, a no ser que el concurso estuviera vigente hasta el 18 de diciembre, cuando esta posición podría haberse cerrado con 630 pips de beneficio. Pero antes de eso se habría visto obligado a sentarse en un drawdown de unos -830 pips (para 4zn), no muy inteligente, la estrategia es un guano tan sombrío...


Lo habría perdido en la cuenta real, funciona en una demo cuando tengo mucho dinero virtual)))

 

¡¡¡evillive, buenas tardes, gracias por indicarme la dirección correcta!!!



r772ra, hola, gracias por explicar el error exhibiendo el código corregido (considero que es la mejor manera de aprender (práctica (-Haz la teoría, amigo, y el árbol de la vida es perenne.-))).

Razón de la queja: