¿Cómo codificar? - página 59

 

Hola a todos...

como puedo establecer un código de orden en el metaeditor,

Yo uso la cuenta de demostración... ¿es posible establecer una orden en la cuenta de demostración

lo he intentado pero no lo he conseguido

 

Parámetro BE

Hola.

Necesito ayuda para añadir el parámetro BE stop en este EA por favor. Este EA lo conseguí de la primera página de este hilo que se basa en el sistema Trendmanager.

Gracias de antemano.

Cha.

e-trendmanager.mq4

Archivos adjuntos:
 

Archivo MQ4 por favor

Hola.
Tengo este archivo de texto de TrendmanagerEA.Podría alguien convertirlo a archivo MQ4 por favor.Voy a probar y comparar con otro EA.

Gracias de antemano.

Cha.

#property copyright "Copyright ฉ 2006, www.easyforexsignals.com"

#property link "paul@easyforexsignals.com"

#define LONGCOLOR DodgerAzul

#define SHORTCOLOR NaranjaRojo

#define MAGICTM 20070610

extern double TMlots=0.1;

extern int MoveStopAmount = 20;

extern int MoveStopAfterProfitof = 55;

extern int minadxlevel = 20;

extern double minSolarWind = 0,25;

extern double minJuice = 0,001;

extern int StopLoss=50,

Slippage = 3,

TakeProfit=120;

datetime LastTMSignalTime;

extern int MinTimeBetweenSignals = 60;

int init(){

return(0);

}

int deinit(){

return(0);

}

int inicio()

{

int res= 0;

if(Bars<100 || IsTradeAllowed()==false) return;

CheckTrendManager(); // comprueba el sistema de gestión de tendencias

CheckForTMClose(); // comprueba los cierres en este sistema

CheckForStopMove(); // mover los stops en cualquier operación abierta

}

void CheckForStopMove() {

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

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderMagicNumber()!=MAGICTM | OrderSymbol()!=Symbol()) continue;

if(OrderType()==OP_BUY)

{

// subir los stops para bloquear el beneficio

if ((OrderOpenPrice()-Ask) >= (MoveStopAfterProfitof * Point()) {

OrderModify(OrderTicket(),0,OrderOpenPrice()+(MoveStopAmount*Point),OrderTakeProfit(),0,Black);

}

}

if(OrderType()==OP_SELL)

{

// mover hacia arriba los stops para bloquear el beneficio

if ((OrderOpenPrice() - Bid) >= (MoveStopAfterProfitof * Point()) {

OrderModify(OrderTicket(),0,OrderOpenPrice()-(MoveStopAmount*Point),OrderTakeProfit(),0,Black);

}

}

}

}

void CheckTrendManager() {

if (Time[0]-LastTMSignalTime > MinTimeBetweenSignals) {

double PipsStopLoss, PipsTakeProfit;

double TMbuy = iCustom(Symbol(),Period(), "TrendManagerNT",2, 0);

double TMsell = iCustom(Symbol(),Period(), "TrendManagerNT",3, 0);

int resultado de la orden;

if (TMbuy > 0) {

if (CheckFilters(OP_BUY)==true) {

PipsStopLoss = Ask-(StopLoss * Point());

PipsTakeProfit = Ask+(TakeProfit * Point());

CloseExisting(OP_SELL);

orderresult =OrderSend(Symbol(),OP_BUY,TMlots,Ask,Slippage,PipsStopLoss, PipsTakeProfit,"",MAGICTM,0,Maroon);

Print(Time[0] + "BUY ON TM,order result was :" + orderresult + "stop:" + PipsStopLoss + ",takeprofit:" + PipsTakeProfit);

LastTMSignalTime = Time[0];

}

}

if (TMsell > 0){

if (CheckFilters(OP_SELL)==true) {

PipsStopLoss = Oferta+(StopLoss * Punto());

PipsTakeProfit = Oferta-(TakeProfit * Punto());

CloseExisting(OP_BUY);

orderresult = OrderSend(Symbol(),OP_SELL,TMlots,Bid,Slippage,PipsStopLoss,PipsTakeProfit,"",MAGICTM,0,Green);

Print(Time[0] + "SELL ON TM, order result was :" + orderresult + "stop:" + PipsStopLoss + ",takeprofit:" + PipsTakeProfit);

LastTMSignalTime = Time[0];

}

}

}

}

void CheckForTMClose() {

double TMclosesell = iCustom(Symbol(),Period(), "TrendManagerNT",4, 0);

double TMclosebuy = iCustom(Symbol(),Period(), "TrendManagerNT",5, 0);

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

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderMagicNumber()!=MAGICTM | OrderSymbol()!=Symbol()) continue;

//---- sólo cerrarlo

if ((TMclosesell > 0) && (OrderType()==OP_SELL)) {

OrderClose(OrderTicket(),OrderLots(),Bid,10,Pink);

}

if ((TMclosebuy > 0) && (OrderType()==OP_BUY)) {

OrderClose(OrderTicket(),OrderLots(),Bid,10,Pink);

}

}

}

// sólo cierra las posiciones existentes

void CloseExisting(int OrderTyp)

{

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

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderMagicNumber()!=MAGICTM | OrderSymbol()!=Symbol()) continue;

//---- sólo cerrarlo deslizamiento std

if(OrderType()==OrderTyp)

{

OrderClose(OrderTicket(),OrderLots(),Bid,10,White);

}

}

}

bool CheckFilters(int OrderTyp) {

return(true);

}

 

Sólo tienes que renombrar el archivo con la extensión .mq4. Eso es todo.

 

Hola.

Intento cambiarlo pero no funciona, ¿puede terminarlo por favor?

Gracias.

Cha.

 
chawichsak:
Hola.

Intento cambiarlo pero no funciona, ¿puede terminarlo por favor?

Gracias.

Cha.

Hecho plut arreglado algunos errores en el código.

Robert

Archivos adjuntos:
 

Se necesita ayuda para la función ordeersend

Hola,

Estoy teniendo problemas con la función ordeersend ().

aquí está el código que hice :

int x = 1;

int init()

{

return(0);

}

int deinit()

{

return(0);

}

int start()

{

double

prixdachat

= MathMax(High[1],High[2]);

double prixdevente = MathMin(Low[1],Low[2]);

int ticket1,ticket2;

if (x==1)

{

ticket1=OrderSend(Symbol(),OP_BUY,1,prixdachat+10*Point,5,prixdachat,prixdachat+20*Point, "ordre",1,15,Green

);

ticket2=OrderSend(Symbol(),OP_SELL,1,prixdevente-10*Point,5,prixdevente,prixdevente-20*Point, "ordre",2,15,Red);

Print

(

"order launched");

x++;

if(ticket1<0)

{

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

return

(0);

}

if(

ticket2<0)

{

Print("OrderSend 2 failed with error #",GetLastError(

));

return(0);

} }

return(0);

}

Con este código, obtengo el error #130 (error para)

Alguien puede explicarme que es lo que falla, no entiendo...

gracias.

 

Si utiliza la llamada"Ejecución instantánea", es decir, el uso de órdenes OP_BUY u OP_SELL, no puede especificar un precio de entrada distinto al de compra para las compras y al de venta para las ventas.

 
fracte:
Hola,

ticket1=OrderSend(Symbol(),OP_BUY,1,prixdevente+10*Punto,5,prixdevente,prixdevente+20*Punto, "ordre",1,15,Verde);

ticket2=EnviarOrden(Symbol(),OP_SELL,1,prixdevente-10*Punto,5,prixdevente,prixdevente-20*Punto, "ordre",2,15,Rojo);

Con este código, me sale el error #130 (error para)

¿Alguien puede explicarme qué es lo que está mal, no entiendo...

gracias.

UTILIZAR ÓRDENES PENDIENTES EN LUGAR DE ÓRDENES INSTANTÁNEAS.

(ej. cambiar OP_BUY por OP_BUYSTOP y OP_SELL por OP_SELLSTOP)

y estará bien.

 

MUCHAS GRACIAS SEÑOR PIP,

CHA.