[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 149
Chicos, ¿dónde está el error look....a continuación, abre varias posiciones en la señal, y, a veces se pierde las señales....a continuación, después de la activación de una parada o el beneficio en el par, abre una nueva....
Look.... condiciones: cruce simultáneo del RSI con los periodos 14 y 17 del nivel 30 de abajo a arriba y tendencia alcista 70 de arriba a abajo...
Chicos, ¿dónde está el error look....a continuación, abre varias posiciones en la señal, y, a veces se pierde las señales....a continuación, después de la activación de una parada o el beneficio en el par, abre una nueva....
Look.... condiciones: cruce simultáneo del RSI con los periodos 14 y 17 del nivel 30 de abajo a arriba y tendencia alcista 70 de arriba a abajo...
if (( diRSI1<30 && diRSI2<30)){
OpenBuy();
return(0);
}
if (diRSI1>70 && diRSI2>70){
OpenSell();
return(0);
}
Yo lo haría así y también pondría un stop de compra y no de venta
todem: Yo lo haría así y pondría un Stop de compra y no de venta
Ha... a tu manera, con cualquier valor inferior a 30 se abre una operación!!!!!!! es inaceptable.... necesito un cruce del nivel 30 desde abajo hacia arriba!!!!!
y los valores
A1=diRSI1;
A2=diRSI2;
Estos son sólo los valores de RSI de la apertura de la vela anterior.... sólo tienen que ser menos de 30 !!! todo es correcto aquí ... Sólo que no entiendo por qué las operaciones se abren en unas pocas piezas en una señal!
Ha... a tu manera cualquier valor menor a 30 abre una operación!!!!!!! esto es inaceptable.... necesito un cruce del nivel 30 de abajo hacia arriba!!!!!
y los valores
estos son solo los valores del RSI de la vela de apertura anterior.... solo tienen que ser menores de 30 !!! todo es correcto aquí ... solo que no entiendo porque se abren operaciones varias veces en una señal !
Si quieres que abra una operación, no puedes hacer que abra 386, es mucho más rápido que eso, que puede ejecutar un millón de operaciones en 1 segundo. El control de la apertura de una operación se realiza mediante el control de las operaciones abiertas. Si tienes un total de 0 operaciones, ábrelas, y si no las tienes, ya está.
todem: Si quieres que abra una operación, no funcionará: es un ordenador 386, y es mucho más rápido, que hace un millón de operaciones en 1 segundo. El control de la apertura de una operación se realiza mediante el control de las operaciones abiertas. Si tienes un total de 0 operaciones, ábrelas, y si no las tienes, ya está.
Hmmm... ese es el punto, si hay un millón de intercambios, entonces el acuerdo debe ser abierto una vez....
OK, lo resolveré de alguna manera))) si hay un código para controlar los intercambios, hágamelo saber... por favor))
Hmmm... esa es la cuestión - si hay un millón de transacciones, entonces la transacción debe ser abierta por una transacción...
ok, lo resolveré de alguna manera))) si hay un código para el control de las transacciones, por favor démelo... por favor))
int OrdCon(int nap, int MGV)
{
int result=0;
for (int i=0;i<OrdersTotal();i++) {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ((nap==0) && (OrderSymbol() == Symbol())&& (OrderMagicNumber() == MGV)) {
result=result+1; // открыт ордер бай
}
if ((nap==1) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == MGV)) {
result=result+1; // открытый ордер селл
}
}
return(result); // 0 means we have no trades
}
if ((nap==0) && (OrderSymbol() == Symbol())&& (OrderMagicNumber() == MGV)) {
result=result+1; // открыт ордер бай
}
if ((nap==1) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == MGV)) {
result=result+1; // открытый ордер селл
}
y en este punto, ¿en qué se basa la conclusión de que la orden abierta es de venta o de compra?
aquí está todo el código anterior:
int OrdCon(int nap, int MGV)
{
int result=0;
for (int i=0;i<OrdersTotal();i++) {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ((nap==0) && (OrderSymbol() == Symbol())&& (OrderMagicNumber() == MGV)) {
result=result+1; // открыт ордер бай
}
if ((nap==1) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == MGV)) {
result=result+1; // открытый ордер селл
}
}
return(result); // 0 means we have no trades
}
//+------------------------------------------------------------------+//| 20/200 expert.mq4 |//| 1H EUR/USD |//| Smirnov Pavel |//| www.autoforex.ru |//+------------------------------------------------------------------+#property copyright "Smirnov Pavel"#property link "www.autoforex.ru"externint TakeProfit = 20; // Уровень тейкпрофит в пунктахexternint StopLoss = 200; // уровень стоплосс в пунктахexternint TradeTime=18;
externint t1=7;
externint t2=2;
externint delta=7;
externint dayout=1;
externdouble lot = 0.1;
int ticket;
bool cantrade=true;
int OpenLong(double volume=0.1)
{
int slippage=10;
string comment="20/200 expert (Long)";
color arrow_color=Red;
int magic=0;
ticket=OrderSend(Symbol(),OP_BUY,volume,Ask,slippage,Ask-StopLoss*Point,
Ask+TakeProfit*Point,comment,magic,0,arrow_color);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("Buy order opened : ",OrderOpenPrice());
return(0);
}
}
else
{
Print("Error opening Buy order : ",GetLastError());
return(-1);
}
}
int OpenShort(double volume=0.1)
{
int slippage=10;
string comment="20/200 expert (Short)";
color arrow_color=Red;
int magic=0;
ticket=OrderSend(Symbol(),OP_SELL,volume,Bid,slippage,Bid+StopLoss*Point,
Bid-TakeProfit*Point,comment,magic,0,arrow_color);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("Sell order opened : ",OrderOpenPrice());
return(0);
}
}
else
{
Print("Error opening Sell order : ",GetLastError());
return(-1);
}
}
int init()
{
return(0);
}
int deinit()
{
return(0);
}
int start()
{
if((TimeHour(TimeCurrent())>TradeTime)) cantrade=true;
// проверяем есть ли открытые ордера ...if(OrdersTotal()<1)
{
// ... если нет ни одного открытого ордера, то идем дальше// проверяем настало ли время для торговлиif((TimeHour(TimeCurrent())==TradeTime)&&(cantrade)&&(TimeDayOfWeek(TimeCurrent())!=dayout))
{
// ... если настало время, тоif ((Open[t1]-Open[t2])>delta*Point) //Если цена изменилась на величину delta
{
//условие выполнено значит входим в короткую позицию:// проверяем есть ли свободные деньги для открытия короткой позицииif(AccountFreeMarginCheck(Symbol(),OP_SELL,lot)<=0 || GetLastError()==134)
{
Print("Not enough money");
return(0);
}
OpenShort(lot);
cantrade=false; //запрещаем торговать повторно до следующего бараreturn(0);
}
if ((Open[t2]-Open[t1])>delta*Point) //Если цена изменилась на величину delta
{
// условие выполнено значит входим в длинную позицию// проверяем есть ли свободные деньги на счетуif(AccountFreeMarginCheck(Symbol(),OP_BUY,lot)<=0 || GetLastError()==134)
{
Print("Not enough money");
return(0);
}
OpenLong(lot);
cantrade=false;
return(0);
}
}
}
return(0);
}
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Chicos, ¿dónde está el error look....a continuación, abre varias posiciones en la señal, y, a veces se pierde las señales....a continuación, después de la activación de una parada o el beneficio en el par, abre una nueva....
Look.... condiciones: cruce simultáneo del RSI con los periodos 14 y 17 del nivel 30 de abajo a arriba y tendencia alcista 70 de arriba a abajo...
Chicos, ¿dónde está el error look....a continuación, abre varias posiciones en la señal, y, a veces se pierde las señales....a continuación, después de la activación de una parada o el beneficio en el par, abre una nueva....
Look.... condiciones: cruce simultáneo del RSI con los periodos 14 y 17 del nivel 30 de abajo a arriba y tendencia alcista 70 de arriba a abajo...
Yo lo haría así y pondría un Stop de compra y no de venta
Ha... a tu manera, con cualquier valor inferior a 30 se abre una operación!!!!!!! es inaceptable.... necesito un cruce del nivel 30 desde abajo hacia arriba!!!!!
y los valores
Estos son sólo los valores de RSI de la apertura de la vela anterior.... sólo tienen que ser menos de 30 !!! todo es correcto aquí ... Sólo que no entiendo por qué las operaciones se abren en unas pocas piezas en una señal!
Yo lo haría así, y se pondría no inmediatamente a comprar sino a bystop y no a vender sino a sellstop
Ha... a tu manera cualquier valor menor a 30 abre una operación!!!!!!! esto es inaceptable.... necesito un cruce del nivel 30 de abajo hacia arriba!!!!!
y los valores
estos son solo los valores del RSI de la vela de apertura anterior.... solo tienen que ser menores de 30 !!! todo es correcto aquí ... solo que no entiendo porque se abren operaciones varias veces en una señal !
Si quieres que abra una operación, no funcionará: es un ordenador 386, y es mucho más rápido, que hace un millón de operaciones en 1 segundo. El control de la apertura de una operación se realiza mediante el control de las operaciones abiertas. Si tienes un total de 0 operaciones, ábrelas, y si no las tienes, ya está.
Hmmm... ese es el punto, si hay un millón de intercambios, entonces el acuerdo debe ser abierto una vez....
OK, lo resolveré de alguna manera))) si hay un código para controlar los intercambios, hágamelo saber... por favor))
Hmmm... esa es la cuestión - si hay un millón de transacciones, entonces la transacción debe ser abierta por una transacción...
ok, lo resolveré de alguna manera))) si hay un código para el control de las transacciones, por favor démelo... por favor))
esta es la función
y en este punto, ¿en qué se basa la conclusión de que la orden abierta es de venta o de compra?
aquí está todo el código anterior:
Aquí he optimizado su PSI con mi asesor