¿Cómo codificar? - página 43

 
jimven:
Flytox: No encuentro ese código en mi copia de TrendStrength.

Es TrendStrength v2.2

 

Modo de precio personalizado

¿Alguien sabe cómo hacer un pricemode personalizado? Estoy usando la siguiente alerta para señalar cuando el precio (extern int PriceMode = 6; //(high+low+close+close)/4) cruza una MA. Me gustaría personalizarlo añadiendo un desplazamiento, por ejemplo del 1 o 2%. ¿Es esto posible? Algo así como

extern int ModoPrecio = ((alto+bajo+cierre+cierre)/4) * 1.01

----------------------------------------------------

#propiedad indicator_chart_window

extern int MA1.period =5; //Periodo 5

extern int MA1.shift=0;

extern int MA1.method=2; //SMMA

extern int lMA1.price=2; //MMA fijado en el máximo de la vela

extern int sMA1.price=3; //MA fijada en el mínimo de la vela

extern int PriceMode = 6; //(high+low+close+close)/4

int cBar,pBarLong,pBarShort;

int inicio()

{

cBar = Tiempo[0];

if(CheckMACross(1)== 1 && cBar!=pBarLong ) {EmailAlert(1); pBarLong=cBar;}

si no

if(CheckMACross(2)==-1 && cBar!=pBarShort) {EmailAlert(2); pBarShort=cBar;}

return(0);

}

int CheckMACross(int modo)

{

if(mode==1) int price = lMA1.price;

si no

if(mode==2) price = sMA1.price;

double precio1 = iMA(Symbol(),0,1,0,1,PriceMode,1);

double ma1 = iMA(Symbol(),0,MA1.period,MA1.shift,MA1.method, price,1);

double precio0 = iMA(Símbolo(),0,1,0,1,ModoPrecio,0);

double ma0 = iMA(Symbol(),0,MA1.period,MA1.shift,MA1.method, price,0);

if(ma1 > precio1 && ma0 <= precio0) return( 1);

si no

if(ma1 = precio0) return(-1);

si no

return(0);

}

{

if(mode == 1) SendMail("Señal para LONG",Symbol()+" Go Long"); //SendMail

si no

if(mode == 2) SendMail("Señal para SHORT",Symbol()+" Ir a corto");//EnviarMail

}

int lastBAlert = 0;

int lastSAlert = 0;

void EmailAlert(int mode)

{

if(mode == 2 && lastSAlert < Time[0] )

{

SendMail("Ir en corto 1",Symbol()+" Ir en corto 1"); //SendMail

lastSAlert = Time[0];

}

}

 
vonokpasah:
Estoy apelando a los expertos por ahí para que por favor venga en mi ayuda necesito algunos para ayudarme a buld un asesor experto META 4 TRADER para mí yo sería greatfull si mi solicitud se concede.

Millones de maneras de construir un experto, ¿qué manera estabas pensando?

 

ayuda con el código fuente

Hola a todos

Tengo un EA y quiero añadirle una entrada

Si el take profit >= :xx , comprar :xx lote

extern int Deltaopen1 =100;

He escrito;

si (tipo == OP_BUY)

{

if (M2.BuyCnt == 0 && OrderTakeProfit() > OrderOpenPrice() + Deltaopen1*point)

{

Buy(Symbol(), GetLots2(), Ask, 0, 0, Magic2);

devolver;

}

}

if (type == OP_SELL)

{

if (M2.SellCnt == 0 && OrderTakeProfit() <= OrderOpenPrice() - Deltaopen1*point)

{

Sell(Symbol(), GetLots2(), Bid, 0, 0, Magic2);

devolver;

}

}

}

Pero no funciona,

Agradezco cualquier ayuda.

Gracias

 

Necesito un poco de ayuda para refinar este EA

Tengo este ea que es una versión modificada del "GAPS EA" que se encuentra en otra parte de este foro.

En fin, adjunto una copia del código.

#property link ""

//---- input parameters

extern int min_gapsize = 1;

extern double lotsize_gap = 5;

extern int MagicNumber = 10;

//----

datetime order_time = 0;

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

//| expert initialization function |

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

int init()

{

//----

return(0);

}

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

//| expert deinitialization function |

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

int deinit()

{

//----

return(0);

}

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

//| expert start function |

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

int start()

{

/*

Thing to be done in future in this program to make it more efficient

and more powerful:

1. Make the dicission of the quantity of lots used according to

the scillators;

2. This program will catch the gaps.

Things to ware of:

1. the spread;

2. excuting the order not on the gap ends a little bit less.

*/

// Defining the variables to decide.

Print("order time", order_time);

double current_openprice = iOpen(Symbol(), 0, 0);

double previous_highprice = iHigh(Symbol(), 0, 1);

double previous_lowprice = iLow(Symbol(), 0, 1);

double point_gap = MarketInfo(Symbol(), MODE_POINT);

int spread_gap = MarketInfo(Symbol(), MODE_SPREAD)+1;

datetime current_time = iTime(Symbol(), 0, 0);

// catching the gap on sell upper gap

if(current_openprice > previous_highprice + (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

int ticket = OrderSend(Symbol(), OP_SELL, lotsize_gap, Bid, 0, 0,

previous_highprice + spread_gap,

"Gapped Up Sell " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Red);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (sell) :-)", order_time);

//----

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//catching the gap on buy down gap

if(current_openprice < previous_lowprice - (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

ticket = OrderSend(Symbol(), OP_BUY, lotsize_gap, Ask, 0, 0,

previous_lowprice - spread_gap,

"Gapped Down Buy " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Green);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (buy) :-)", order_time);

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//----

return(0);

}

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

Cada vez que pongo esto en el probador de estrategias, no abre las operaciones. Un rápido vistazo al diario me dice que se han realizado bastantes órdenes. ¿Qué he hecho mal?

 

Ayuda: Pregunta básica sobre el histograma

Esto es probablemente muy fácil y estoy mirando más allá de algo, pero estoy sin recursos y no puedo encontrar una respuesta.

Todo lo que estoy tratando de hacer es recordar el valor de la barra del histograma previamente dibujado.

¿Alguna idea?

Es decir, Close[1] muestra la última barra cerrada en el gráfico.....

Entonces, ¿qué mostraría la última barra de histograma dibujada en este indicador de ventana separada?

Gracias por cualquier consejo de antemano.

-dharsant

 
dharsant:
Probablemente esto es muy fácil y estoy buscando algo más allá, pero estoy sin recursos y no puedo encontrar una respuesta.

Lo único que intento hacer es recuperar el valor de la barra del histograma previamente dibujada.

¿Alguna idea?

Por ejemplo, Close[1] muestra la última barra cerrada en el gráfico .....

Entonces, ¿qué mostraría la última barra de histograma dibujada en este indicador de ventana separada?

Gracias por cualquier consejo de antemano.

-dharsant

¿Qué indicador está llamando? Sólo tiene que configurar el desplazamiento para llamar a la barra anterior.

Ejemplo, para una media móvil de la barra actual:

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,0);

Para una media móvil de la barra anterior:

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,1);

El último parámetro al llamar a un indicador significa cuántas barras desde la actual serán leídas.

Espero que esto sea lo que estabas buscando.

 

Se necesita ayuda para codificar, por favor

Estoy tratando de utilizar un par de indicadores diferentes en un ea pero parece que no puede averiguar cómo implementarlos en el sistema. ¿Qué parte del indicador utilizo para decir comprar o vender? ¿Cómo puedo obtener la línea de dirección de la pendiente en la parte de un EA.

Saludos

Beno

Archivos adjuntos:
 

Probablemente no me he explicado bien.

Estoy tratando de averiguar lo que tengo que poner en iCustom esto es lo que he hecho a continuación.

double SDL=iCustom(NULL,0, "Slope Direction Line",period,method,price)

Y lo que necesito hacer para generar señales de compra y venta desde el indicador Slope Direction Line para mi EA. Abajo está lo que he hecho hasta ahora, compila pero no se generan posiciones.

bool Long = TML && SDL && HeikenAshiOpen < HeikenAshiClose && hasOpen < hasClose;

bool Short = TMS && SDL && HeikenAshiOpen > HeikenAshiClose && hasOpen > hasClose;

Cualquier ayuda sería genial

Saludos

Beno

 

En primer lugar, la llamada de iCustom necesita dos argumentos adicionales al final, a saber, de cuál de los búferes de indicadores se va a leer, y en qué índice se va a leer.

En segundo lugar, "SDL" es un número doble, por lo que poner simplemente "SDL" como condición muestra cierta confusión; posiblemente se compila como "SDL != 0", y posiblemente eso es lo que se quiere decir.