No se trata de stoplots, se trata de cerrar la posición en cuanto el precio toque la MA
Que sea así, fuiste tú quien escribió sobre las paradas...) Pero no puedo entender por qué no funciona sin el código. La pieza anterior no es muy informativa.
Que así sea, fuiste tú quien escribió sobre los tapones...). De todos modos, sin el código es imposible entender por qué no funciona, la pieza publicada es completamente desinformativa.
Debo haberme expresado muy mal, pido disculpas, quise decir que la propia MA debería servir como stop-loss
... ... la posición se cerró en cuanto el precio tocó la MA
Y el código es extremadamente primitivo:
Ticket=OrderTicket();
Tip =OrderType();
Lot =OrderLots();
MA2C=iMA(NULL,0, Period_MA2,0,MODE_SMA,PRICE_CLOSE,0);//Есть две MA с разным периодом.
MA3C=iMA(NULL,0, Period_MA3,0,MODE_SMA,PRICE_CLOSE,0);//И вот с такими параметрами.//Так же есть условия, при которых по идее должны срабатывать // функции закрытия ордеров.RefreshRates();if( Tip==0&&Bid== MA2C)//Обозначение типа ордера и условия закрытия{
CloseBuy=true;// Закрыть Buy}RefreshRates();if( Tip==0&&Bid== MA3C){
CloseBuy=true;// Закрыть Buy}RefreshRates();if( Tip==1&&Ask== MA2C){
CloseSell=true;// Закрыть Sell}RefreshRates();if( Tip==1&&Ask== MA3C){
CloseSell=true;// Закрыть Sell}// Закрытие ордеровwhile(true)// Цикл закрытия орд.{if( Tip==0&& CloseBuy==true)// Открыт ордер Buy..{//и есть критерий закрAlert("Попытка закрыть Buy ", Ticket,". Ожидание ответа..");RefreshRates();// Обновление данных
ALERT=OrderClose( Ticket, Lot,Bid,3,Blue);// Закрытие Buyif( ALERT==true)// Получилось :){Alert("Закрыт ордер Buy ", Ticket);break;// Выход из цикла закр}if( Fun_Error(GetLastError())==1)// Обработка ошибокcontinue;// Повторная попыткаreturn;// Выход из start()}if( Tip==1&& CloseSell==true)// Открыт ордер Sell..{// и есть критерий закрAlert("Попытка закрыть Sell ", Ticket,". Ожидание ответа..");RefreshRates();// Обновление данных
ALERT=OrderClose( Ticket, Lot,Ask,3,Red);// Закрытие Sellif( ALERT==true)// Получилось :){Alert("Закрыт ордер Sell ", Ticket);break;// Выход из цикла закр}if( Fun_Error(GetLastError())==1)// Обработка ошибокcontinue;// Повторная попыткаreturn;// Выход из start()}break;// Выход из while}
Ya creo que las 4 condiciones se pueden cambiar a 2
Symb=Symbol();// Название фин.инстр.
Total=0;// Количество ордеровfor(int i=1; i<=OrdersTotal(); i++)// Цикл перебора ордер{if(OrderSelect( i-1, SELECT_BY_POS)==true)// Если есть следующий{// Анализ ордеров:if(OrderSymbol()!= Symb)continue;// Не наш фин. инструмif(OrderType()>1)// Попался отложенный{Alert("Обнаружен отложенный ордер. Эксперт не работает.");return;// Выход из start()}
Total++;// Счётчик рыночн. ордif( Total>1)// Не более одного орд{Alert("Несколько рыночных ордеров. Эксперт не работает.");return;// Выход из start()}
Ticket=OrderTicket();// Номер выбранн. орд.
Tip =OrderType();// Тип выбранного орд.
Lot =OrderLots();// Количество лотов}//И далее как выше...
Es importante para mí entender si esto es posible en principio, porque cuando se prueba en el modo de visualización, las órdenes no se cierran en MA
Novice писал(а)>> Quiero saber si es posible hacer esto en principio porque durante las pruebas en modo de visualización, las órdenes no se cierran en MA
En principio es posible. ¿Sólo tiene un único pedido posible en su sistema?
Intenta normalizar los precios Bid/Ask y los valores MA para que sean iguales, es necesario...
¿Por qué no utiliza su Asesor Experto? Lo habría corregido hace mucho tiempo.
>> Poner todo el código, no hay olor a tapones aquí todavía...
No se trata de stoppers, se trata de cerrar una posición tan pronto como el precio toque la MA
No se trata de stoplots, se trata de cerrar la posición en cuanto el precio toque la MA
Que sea así, fuiste tú quien escribió sobre las paradas...) Pero no puedo entender por qué no funciona sin el código. La pieza anterior no es muy informativa.
Que así sea, fuiste tú quien escribió sobre los tapones...). De todos modos, sin el código es imposible entender por qué no funciona, la pieza publicada es completamente desinformativa.
Debo haberme expresado muy mal, pido disculpas, quise decir que la propia MA debería servir como stop-loss
... ... la posición se cerró en cuanto el precio tocó la MA
Y el código es extremadamente primitivo:
Ya creo que las 4 condiciones se pueden cambiar a 2
Luego es así) En fin, es una pieza delirante, los vagones se construyen a precios de Oferta, y compararlos así.... No lo sé.
Algo en su código, OrderSelect no ver?
Es estándar, de un libro de texto:
Es importante para mí entender si esto es posible en principio, porque cuando se prueba en el modo de visualización, las órdenes no se cierran en MAQuiero saber si es posible hacer esto en principio porque durante las pruebas en modo de visualización, las órdenes no se cierran en MA
En principio es posible. ¿Sólo tiene un único pedido posible en su sistema?
Intenta normalizar los precios Bid/Ask y los valores MA para que sean iguales, es necesario...
¿Por qué no utiliza su Asesor Experto? Lo habría corregido hace mucho tiempo.
En principio es posible. ¿Sólo tiene un único pedido posible en su sistema?
Intenta normalizar los precios Bid/Ask y los valores MA para que sean iguales, es necesario...
¿Por qué no utiliza su Asesor Experto? Lo habría corregido hace tiempo.
Después de eso mi cabeza empezó a dar vueltas...
No) A un grial como a otra galaxia, sólo intentos de realizar y mejorar la CT.
No he podido meter todo el código en el post, así que adjunto
Después de eso, mi cabeza empezó a dar vueltas...
No) El Grial es como otra galaxia, sólo un intento de implementar y mejorar el TC.
No he conseguido poner todo el código en este post, así que lo pego aquí.
Pero en principio, de alguna manera funciona:
Lo único que he quitado es el aumento del lote. ¿Creía que había dicho que los pedidos no estaban cerrados?
¿Y cómo...?
...normalizar los precios Bid/Ask y los valores MA al comparar para la igualdad...
Es que no entiendo muy bien cómo normalizar... NormalizarDoble(Pregunta, Dígitos) ?
El problema es de actualidad, todavía me pregunto cómo hacer que las órdenes se cierren inmediatamente cuando se alcanza el precio de la MA.
Después de la normalización salió un error durante la compilación por alguna razón, y en la parte del código donde no se tocó para nada.