а почему как функция не работает а в старте работает?
De hecho, esta es una función sólo depende de lo que es if(Close_){ - entonces aplicarlo dentro de la salida, si void Close_() { como una función de trabajo fuera de la salida.
Es un Matsimple estándar. Estoy tratando de averiguar por qué no se cierra correctamente. Estoy probando la lógica para cerrar operaciones. Una parte consiste en RSI... por eso no funciona.
¡Respetados gurús! Por favor, no lo dejéis pasar desapercibido.
He comprado un portátil HP con Windows Vista preinstaladocon sistema operativo de 64 bits. Comenzó a tener problemas con el trabajo del EA. Al principio mis tratos se abrían de alguna manera. Pero en una semana mi Asesor Experto dejó de abrir algunas ofertas por completo. Lo probamos y lo retorcimos y finalmente decidimos que el problema era causado por los 64 bits. Lo reinstalamos e instalamos Windows de 32 bits y 7 . Funcionó bien durante un día y luego no vuelve a funcionar. ¿Tal vez tengo algún tipo de actualización de Windows que lo está afectando?
En otros ordenadores (colegas), el EA funciona sin ninguna interrupción. Mi antiguo portátil ya no existe y no puedo comprar nada por el momento.
Por cierto, estoy trabajando en la plataforma Instatrader.
Por favor, si alguien se ha encontrado o tiene alguna sugerencia sobre cómo se puede arreglar esto, por favor avise.
¡¡¡¡Ayúdame a rehacer un simple EA, he estado luchando por una semana!!!! O escríbelo de nuevo, ¡todos los EAs son demasiado complicados y no puedo ajustarlos para mí!
Quiero añadir a este EA un indicador MACD, que envía sus señales de COMPRA y VENTA y el EA tiene que hacer las dos cosas a la vez. No debe haber más de tres órdenes de COMPRA y tres de VENTA abiertas. Todas las órdenes deben ser cerradas por stoploss y takeprofit solamente, y no por la fuerza del Asesor Experto.
//--------------------------------------------------------------------externint period_EMA =28,
period_WMA =8,
stoploss =50,
takeprofit =50,
risk =10;double LOT;//--------------------------------------------------------------------double SL, TP;int TimeBar;//глобальная переменная//--------------------------------------------------------------------int start(){if( TimeBar==Time[0])return(0);if( TimeBar==0){ TimeBar=Time[0];return(0);}//первый запуск программыdouble EMA0 =iMA(NULL,0, period_EMA,0,MODE_EMA,PRICE_OPEN,0);double WMA0 =iMA(NULL,0, period_WMA,0,MODE_LWMA,PRICE_OPEN,0);double EMA1 =iMA(NULL,0, period_EMA,0,MODE_EMA,PRICE_OPEN,1);double WMA1 =iMA(NULL,0, period_WMA,0,MODE_LWMA,PRICE_OPEN,1);if( EMA0< WMA0&& EMA1> WMA1)//Buy{
TimeBar=Time[0];
TP =Ask+ takeprofit*Point;
SL =Ask- stoploss*Point;
LOT = LOT( risk,1);
CLOSEORDER("Sell");
OPENORDER ("Buy");}if( EMA0> WMA0&& EMA1< WMA1)//Sell{
TimeBar=Time[0];
TP =Bid- takeprofit*Point;
SL =Bid+ stoploss*Point;
LOT = LOT( risk,1);
CLOSEORDER("Buy");
OPENORDER ("Sell");}return(0);}//--------------------------------------------------------------------void CLOSEORDER(string ord){for(int i=OrdersTotal()-1; i>=0; i--){if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==true){if(OrderSymbol()!=Symbol())continue;if(OrderType()==OP_BUY&& ord=="Buy")OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);// Close Buyif(OrderType()==OP_SELL&& ord=="Sell")OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);// Close Sell}}}//--------------------------------------------------------------------void OPENORDER(string ord){int error;if( ord=="Buy") error=OrderSend(Symbol(),OP_BUY, LOT,Ask,2, SL, TP,"",1,3);if( ord=="Sell") error=OrderSend(Symbol(),OP_SELL, LOT,Bid,2, SL, TP,"",-1,3);if( error==-1)//неудачная покупка OK{
ShowERROR( error,0,0);}return;}//--------------------------------------------------------------------void ShowERROR(int Ticket,double SL,double TP){int err=GetLastError();switch( err ){case1:return;case2:Alert("Нет связи с торговым сервером ", Ticket," ",Symbol());return;case3:Alert("Error неправильные параметры Ticket ", Ticket," ",Symbol());return;case130:Alert("Error близкие стопы Ticket ", Ticket," ",Symbol());return;case134:Alert("Недостаточно денег ", Ticket," ",Symbol());return;case146:Alert("Error Подсистема торговли занята ", Ticket," ",Symbol());return;case129:Alert("Error Неправильная цена ", Ticket," ",Symbol());return;case131:Alert("Error Неправильный объем ", Ticket," ",Symbol());return;case4051:Alert("Error Недопустимое значение параметра функции ", Ticket," ",Symbol());return;case4105:Alert("Error Ни один ордер не выбран ", Ticket," ",Symbol());return;case4063:Alert("Error Ожидается параметр типа integer ", Ticket," ",Symbol());return;case4200:Alert("Error Объект уже существует ", Ticket," ",Symbol());return;default:Alert("Error ", err," Ticket ", Ticket," ",Symbol());return;}}//--------------------------------------------------------------------double LOT(int risk,int ord){double MINLOT =MarketInfo(Symbol(),MODE_MINLOT);
LOT =AccountFreeMargin()* risk/100/MarketInfo(Symbol(),MODE_MARGINREQUIRED)/ ord;if( LOT>MarketInfo(Symbol(),MODE_MAXLOT)) LOT =MarketInfo(Symbol(),MODE_MAXLOT);if( LOT< MINLOT) LOT = MINLOT;if( MINLOT<0.1) LOT =NormalizeDouble( LOT,2);else LOT =NormalizeDouble( LOT,1);return( LOT);}//--------------------------------------------------------------------
Помогите переделать простой советник, бьюсь неделю!!!! Или написать снова, а то все советники слишком сложные и я их не могу под себя подстроить!!
Суть такая: Хочу добавить в этот советник( торгующий на пересечении) ещё индикатор MACD, который подает свой сигнал на продажу и покупку и советник должен параллельно выполнять их. Открытых ордеров BUY не больше трех и SELL тоже трех. Все ордера должны закрываться только по stoploss и takeprofit, а не принудительно советником.
Todo está claro con esto, pero ¿cómo puedo establecer las órdenes? En la versión original, por ejemplo, establecemos la compra, y cuando se recibe una señal de venta, ¡se cierra la compra y se establece la venta! Y no necesito cerrar, el Asesor Experto debe poner órdenes con stops y ya está.
Tengo una pregunta, o más bien una petición, sobre el mismo EA EMA_WMA.mq4 y también con respecto al cierre. ¿Es posible en lugar de cerrar por TakeProfit o además de eso añadir la posibilidad de cerrar una orden por el valor max/min de MA. Me parece que esta sería la mejor manera de salir del mercado, (aunque puedo estar equivocado por supuesto). Por favor, añada esta función a este EA.
Otra pequeña pregunta, me sale un mensaje así: "Error. Stops close", aunque mi stop loss está fijado en 50 pips (MasterForex). ¿Qué significa?
а почему как функция не работает а в старте работает?
De hecho, esta es una función sólo depende de lo que es if(Close_){ - entonces aplicarlo dentro de la salida, si void Close_() { como una función de trabajo fuera de la salida.
алгоритм у вас верный. сделайте распринтовку возможных ошибок и вообще ухзнать куда доходит эксперт при выполнении этого кода.
+ выведите расчитанные значения рси.
)))) Creo que el tipo tiene un error en el código..... aunque soy un novato, podría estar equivocado.
Es un Matsimple estándar. Estoy tratando de averiguar por qué no se cierra correctamente. Estoy probando la lógica para cerrar operaciones. Una parte consiste en RSI... por eso no funciona.
Cambiado el shifft después de la impresión.
Por favor, no lo dejéis pasar desapercibido.
He comprado un portátil HP con Windows Vista preinstaladocon sistema operativo de 64 bits.
Comenzó a tener problemas con el trabajo del EA. Al principio mis tratos se abrían de alguna manera. Pero en una semana mi Asesor Experto dejó de abrir algunas ofertas por completo. Lo probamos y lo retorcimos y finalmente decidimos que el problema era causado por los 64 bits. Lo reinstalamos e instalamos Windows de 32 bits y 7 . Funcionó bien durante un día y luego no vuelve a funcionar. ¿Tal vez tengo algún tipo de actualización de Windows que lo está afectando?
En otros ordenadores (colegas), el EA funciona sin ninguna interrupción. Mi antiguo portátil ya no existe y no puedo comprar nada por el momento.
Por cierto, estoy trabajando en la plataforma Instatrader.
Por favor, si alguien se ha encontrado o tiene alguna sugerencia sobre cómo se puede arreglar esto, por favor avise.
¡¡¡¡Ayúdame a rehacer un simple EA, he estado luchando por una semana!!!! O escríbelo de nuevo, ¡todos los EAs son demasiado complicados y no puedo ajustarlos para mí!
Quiero añadir a este EA un indicador MACD, que envía sus señales de COMPRA y VENTA y el EA tiene que hacer las dos cosas a la vez. No debe haber más de tres órdenes de COMPRA y tres de VENTA abiertas. Todas las órdenes deben ser cerradas por stoploss y takeprofit solamente, y no por la fuerza del Asesor Experto.
Помогите переделать простой советник, бьюсь неделю!!!! Или написать снова, а то все советники слишком сложные и я их не могу под себя подстроить!!
Суть такая: Хочу добавить в этот советник( торгующий на пересечении) ещё индикатор MACD, который подает свой сигнал на продажу и покупку и советник должен параллельно выполнять их. Открытых ордеров BUY не больше трех и SELL тоже трех. Все ордера должны закрываться только по stoploss и takeprofit, а не принудительно советником.
Tengo una pregunta, o más bien una petición, sobre el mismo EA EMA_WMA.mq4 y también con respecto al cierre. ¿Es posible en lugar de cerrar por Take Profit o además de eso añadir la posibilidad de cerrar una orden por el valor max/min de MA. Me parece que esta sería la mejor manera de salir del mercado, (aunque puedo estar equivocado por supuesto). Por favor, añada esta función a este EA.
Otra pequeña pregunta, me sale un mensaje así: "Error. Stops close", aunque mi stop loss está fijado en 50 pips (MasterForex). ¿Qué significa?