Ideas en bruto - página 5

 

Stop loss para EA

Lo siento por el título anterior, lo que necesito es un comando de take profit. No tengo ni idea de cómo codificar pero me gustaría añadir un Take Profit a este ea. A continuación se muestra el código por favor, añadir el take profit donde sea necesario. Gracias de nuevo

Ray

extern double MaximumRisk =0.02; //% de saldo de la cuenta a arriesgar por posición

extern double DecreaseFactor =3; //divisor del tamaño del lote (reductor) durante la racha de pérdidas

extern double Lot.Margin =50; /Margen para 1 lote

extern int Magia =69;

extern string comment ="m icwr ea";

double spread; spread =Ask-Bid;

int deslizamiento; deslizamiento =spread/Point;

int RequiredWaveHeight,b,s,cnt,ticket;

double rsi,SL,ICWR,ICWRv0,awp1,awp2,active.high,active.low,high.c,high.r,low.r,low.c

datetime awt1,awt2,a.high.shift,a.low.shift,shift;

int init(){return(0);}

int deinit(){return(0);}

int inicio(){

PosCounter();

rsi=iRSI(Symbol(),1440,14,PRICE_CLOSE,0);

if(Period()==5) {RequiredWaveHeight=40;SL=50*Point;}

if(Period()==240) {RequiredWaveHeight=150;SL=100*Point;}

ICWR=iCustom(Symbol(),Period(), "ICWR",10,5,3,RequiredWaveHeight,0,0);

ICWRv0=iCustom(Symbol(),Period(), "ICWR v0", "ZigZag",10,5,3, "ActiveWave",50,RequiredWaveHeight,0,0);

awt1=ObjectGet("Activewave",OBJPROP_TIME1);

awp1=ObjectGet("Activewave",OBJPROP_PRICE1);

awt2=ObjectGet("Activewave",OBJPROP_TIME2);

awp2=ObjectGet("Activewave",OBJPROP_PRICE2);

if(awp1>awp2) {

active.high=awp1;

a.high.shift=iBarShift(Symbol(),Period(),awt1);

active.low=awp2;

a.low.shift=iBarShift(Symbol(),Period(),awt2);}

si no {

active.high=awp2;

a.high.shift=iBarShift(Symbol(),Period(),awt2);

active.low=awp1;

a.low.shift=iBarShift(Symbol(),Period(),awt1);}

if(a.high.shift<a.low.shift) shift=a.high.shift;

si no, shift=a.low.shift;

high.c=NormalizeDouble(active.low+((active.highactive.low)*0.75),Digits);

high.r=NormalizeDouble(active.low+((active.high-active.low)*0.618),Digits);

low.r=NormalizeDouble(active.low+((active.highactive.low)*0.382),Digits);

low.c=NormalizeDouble(active.low+((active.highactive.low)*0.25),Digits);

if(rsi>50) {

for(int i=0;i<cambio;i++) {

if(Cierre.r && Bajo[1]>alto.c && b==0) {

ticket1=Enviar orden(Símbolo(),OP_SELL,1.0,Oferta,0,Oferta+20*Punto,Oferta-30*Punto, "comentario experto",255,0,CLR_NONE);

OP_BUY,

LotsOptimized(),

Ask,

deslizamiento,

Ask-SL,

0,

Periodo()+comentario,

Magia,0,Azul);

if(ticket>0) {

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{ Print(ticket); }

else Print("Error al abrir la orden BuyStop: ",GetLastError());

return(0);}}}}

if(rsi<50) {

for(int ii=0;ii<shift;ii++) {

if(Closelow.r && High[1]<low.c && s==0) {

ticket=Enviar orden(Símbolo(),

OP_SELL,

LotsOptimized(),

Oferta,

deslizamiento,

Oferta+SL,

0,

Periodo()+comentario,

Magia,0,Naranja);

if(ticket>0) {

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{ Print(ticket); }

else Print("Error al abrir la orden SellStop: ",GetLastError());

return(0);}}}}

if(b>0) {

for(int c=0;c<shift;c++) {

if(High[1]<low.c) {

OrderClose(ticket,OrderLots(),Bid,slip,0);}}

if(s>0) {

for(int cc=0;cc<desplazamiento;cc++) {

if(Low[1]>high.c) {

OrderClose(ticket,OrderLots(),Ask,slip,0);}}

comentarios();

return(0);}

//+---------------------------FUNCTIONS------------------------------+

void PosCounter() {

b=0;s=0;ticket=0;

for(cnt=0;cnt<=OrdersTotal();cnt++) {

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) {

if(OrderType()==OP_SELL) {

ticket=OrderTicket();

s++;}

if(OrderType()==OP_BUY) {

ticket=OrderTicket();

b++;} }}}

void comentarios() {

if(MarketInfo(Symbol(),MODE_SWAPLONG)>0) string swap="largos";

else swap="cortos";

if(MarketInfo(Symbol(),MODE_SWAPLONG)<0 && MarketInfo(Symbol(),MODE_SWAPSHORT)<0) swap="su corredor. ";

Comment("Último Tick: ",TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS),"\n",

"Swap favorece ",swap,"\n",

"RSI diario= ",rsi,"\n",

"Activo alto: ",activo.alto,"\n",

"Desplazamiento alto: ",a.high.shift,"\n",

"Confirmación alta: ",high.c,"\n",

"Retracción alta: ",high.r,"\n",

"Retracción baja: ",low.r,"\n",

"Confirmación baja: ",low.c,"\n",

"Activo bajo: ",activo.bajo,"\n",

"Desplazamiento de bajos: ",a.low.shift); }

double LotesOptimizados() {

doble lote;

int pedidos=HistoriaTotal();

int pérdidas=0;

lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/Lot.Margin,2);

if(DecreaseFactor>0) {

for(int i=órdenes-1;i>=0;i--) {

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("¡Error en el historial!"); 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,2); }

if(lot<0.01) lot=0.01;

return(lote); }//fin LotsOptimized

 

No importa...

No importa... de alguna manera

descargué el catfx TEMPLATE y todo apareció...

No sé

 

pregunta rápida... ¿qué datos te da INDinverse?

Tengo este gráfico pero no consigo descifrar que información me da..

He hecho una búsqueda pero no he encontrado una descripción.

GRACIAS POR SU APOYO

Archivos adjuntos:
 

¿El nuevo gráfico desactiva el EA?

Hola de nuevo,

(Este es un gran tablero, ¡tendré algo que compartir pronto!)

Estoy jugando con el ejemplo de CodersGuru "Your First Expert Advisor" de su Curso MQL4...

He notado algo que espero tenga solución... Después de cargar el EA en el gráfico de 30M... abrió una orden (corta).. Había modificado su código para probar mi estrategia de Salida (un simple cruce en un periodo de tiempo inferior)....

El cruce vino y se fue (y el estado impreso, y mi código era correcto) SIN EMBARGO, yo estaba en el gráfico de 15M en ese momento... ¿significa esto que desactivé el EA (por lo que mi código/lógica no se ejecutó)?

Si es así, ¿hay alguna forma de evitarlo? Me gustaría hacer clic hacia atrás y adelante a otros marcos de tiempo ... sin desactivar la EA que se está ejecutando.

Gracias de antemano por las respuestas.

-charliev

 

¿La eficacia del sistema es proporcional a su crecimiento de usuarios?

¿Creen ustedes que un sistema ganaría o perdería su efectividad junto con un número creciente de personas que lo aplican?

Parece que muchos traders de éxito no suelen compartir sus estrategias de trading, así que debe haber una razón para que lo hagan. ¿Alguien se anima a probarlo?

 
TheShanghai:
¿Creen ustedes que un sistema ganaría o perdería su eficacia junto con un número creciente de personas que lo aplican? Parece que muchos traders de éxito no suelen compartir sus estrategias de trading, así que debe haber una razón para que lo hagan. ¿Alguien se anima a probarlo?

He oído hablar de esta idea de que muchos comerciantes de éxito no suelen compartir sus estrategias de negociación o compartir algunas estrategias equivocadas especialmente. Puede ser. No lo sé. Porque el forex es dinero. Creo que no es nada con esta eficacia. Es porque no muchos comerciantes de éxito y es algo con los corredores.

BTW, creo que es personal. Un comerciante puede utilizar alguna estrategia comercial y no puedo debido a mi carácter, hábitos, zona horaria, etc. Así que es personal. De todos modos podemos descubrir todas las estrategias como lo estamos haciendo ya aquí en el foro.

 

Gracias por los comentarios. Lo tendré en cuenta.

 

Siga la tendencia

Hola,

Tengo un sistema simple pero estable que me funciona. Hago uso de una EMA 34 en el cierre. RSI 7 al cierre. CCI 20 al cierre. Coloca la EMA en un gráfico y mira la tendencia. Comienza en la 30M y muévete hasta H4 incluso D1. La tendencia de la EMA debe ser la misma para todos los plazos. Si la tendencia es correcta puedes entrar en una operación si el RSI está por encima/debajo de 50 en el marco de tiempo D1 y el CCI está por encima/debajo de 100. Permanezca en el gráfico H4 cuando la operación comience, esto le impide ver el ruido en el mercado y le permite cerrar antes de tiempo. Ponga un stoploss en 80 pips. También puedes usar el Fib para ver si el mercado tiene un retroceso o no. Me gusta usar un canal Equidistante (Una herramienta estándar de metatrader) para encontrar la tendencia del mercado. Me mantengo en esa tendencia hasta que hago mis ganancias. Este método no es a prueba de tontos, pero una cosa es segura y tiene más sentido para mí cada día y es que no estoy operando contra una tendencia importante.

Por favor, experimente con este método en demo y construyamos un sistema a largo plazo que funcione para el trader más serio.

Roets

 

Valor por defecto cuando se declara un array

Hola a todos,

¿Qué valor se coloca como valor por defecto en este Array:

double ARRAYA[];

double ARRAYB[];

Quiero borrar todo el contenido de estos Arrays haciendo

ArrayInitialize(ARRAYA,NULL);

ArrayInitialize(ARRAYB,NULL);

Sin embargo, al poner NULL se llena el Array con 0 (cero).

¿Alguna sugerencia?

-charliev

 

Indicador #include en EA?

Hola a todos,

¿Existe una forma de #incluir un indicador compilado para que se cargue cuando se cargue el EA? (¿Haciendo el EA independiente como 1 archivo .EX4?)

¡Gracias por la ayuda!

-charliev

Razón de la queja: