[¡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 65

 
Vinin:

Lo haré a mi manera y la cuenta atrás será diferente. Siempre voy del pasado al presente. Pero es una cuestión de gustos. De hecho, con el enfoque adecuado no importa realmente.

Hola,

Por favor, ayuda con la página. (Puesto 56, 58 páginas).

 
Roger:


Probablemente demasiado rápido, deberías haber estudiado un poco. :-)

Entonces sabrás que compras a la demanda y vendes a la oferta. Si los vendiéramos, su precio sería inferior al de la oferta.


No, es justo lo contrario de lo que has escrito. Por supuesto, gracias por tu atención. He pensado mucho, lo he calculado de esta manera y de otra, y estás equivocado.

En general, veo que el problema no está en los Aks y Bids, y no lo he solucionado.

 
Dimka-novitsek:

Lo siento, yo también estoy con el mío. Aquí, acabo de gurdar el código y no funciona.

//+------------------------------------------------------------------+
//| tipo de orden.mq4 ||
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| función de inicialización de expertos |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto |
//+------------------------------------------------------------------+
double Nuevo_tiempo=0,razniza, r;int=0,h=0,q=0,w=0,s=0,g=0;
int inicio()
{int M,Y;
//----
double ticket,Lots=0.2,fractal_u=Ask,TakeProfit=50,Points = MarketInfo (Symbol(), MODE_POINT);
//----
si (i<10)
{
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,fractal_u+5*Puntos,3,0,fractal_u+5*Puntos+TakeProfit*Puntos,
"abrir una posición",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("Nueva_hora",Nueva_hora);i++; }
Alert("OrderTypeOP_BUYSTOP",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Bid,5, 0 );



si (h<10)
{
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"abrir una posición",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("Nueva_hora",Nueva_hora);h++; }
Alert("OrderTypeOP_SELLSTOP",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Ask,5, 0 );

si (q<10)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Bid,3,0,5*Points+TakeProfit*Points,
"abrir una posición",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("Nueva_hora",Nueva_hora); q++; }
Alert("OrderTypeOP_BUY",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Bid,5, 0 );

si (w<10)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,5*Points+TakeProfit*Points,
"abrir una posición",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("Nueva_hora",Nueva_hora);w++; }
Alert("OrderTypeOP_SELL",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Ask,5, 0 );

si (s<10)
{
ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"abrir una posición",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("Nueva_hora",Nueva_hora); s++; }
Alert("OrderTypeOP_BUYLIMIT",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Ask,5, 0 );

si (g<10)
{
ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lots,fractal_u+5*Puntos,3,0,fractal_u+5*Puntos+TakeProfit*Puntos,
"abrir una posición",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("Nueva_hora",Nueva_hora);g++; }
Alert ("OrderTypeOP_SELLLIMIT",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket, Lots, Bid, 5, 0 );






//----
return(0);
}
//+------------------------------------------------------------------+

Lo hice bastante rápido, lo configuré con el propósito de obtener un valor numérico del tipo de orden, abre y cierra todas las órdenes en una fila, me refiero a todos los tipos. He comprobado OrderClose con la instrucción, los parámetros parecen estar prescritos razonablemente, correctamente y en sus lugares. Qué más necesita?????

 

Alert("Hora actual del día", iTime(NULL,PERIOD_D1,5));

esto me da 0, añadido:

Alert("",GetLastError());

da un error 4054

ERR_INCORRECT_SERIESARRAY_USING4054Uso incorrecto de la matriz de series temporales

¿Qué estoy haciendo mal?


 

Por favor, ayuda. El código debería borrar todas las órdenes de mercado en todos los pares, pero en la práctica sólo borra las de la ventana donde se lanza el EA. Por favor, ayúdenme a encontrar el error.


void CloseAll_b(int Prosk){
string SMB=Símbolo();
for (int i=OrdersTotal()-1;i>=0;i--){
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
Alert("Error ",GetLastError()," cuando se selecciona el número de pedido ",OrderTicket()," por el par ",Symbol());
}
si no{
if(OrderSymbol()!=Symbol()){continuar;}
RefreshRates();
if(OrderType()==OP_BUY){
if(!OrderClose(OrderTicket(),OrderLots(),Bid,Prosk,CLR_NONE)){
Alert("Error ",GetLastError(),",OrderTicket(),",Symbol()) al cerrar la orden de compra;
}
}
if(OrderType()==OP_SELL){
if(!OrderClose(OrderTicket(),OrderLots(),Ask,Prosk,CLR_NONE)){
Alert("Error ",GetLastError(),{ cuando el número de orden de venta está cerrado ",OrderTicket(),{ por par ",Symbol());
} } } } }

Gracias de antemano.

 
nemo811:

Por favor, ayuda. El código debería borrar todas las órdenes de mercado en todos los pares, pero en la práctica sólo borra las de la ventana donde se lanza el EA. Por favor, ayúdenme a encontrar el error.


pero la restricción la pones tú mismo :))

if(OrderSymbol()!=Symbol()){continuar;}

 
sergeev:

pero la restricción la pones tú mismo :))

if(OrderSymbol()!=Symbol()){continuar;}


Estoy de acuerdo, es una estupidez :)) ¿Cómo debería ser?
 
nemo811:

Estoy de acuerdo, es una estupidez :))) ¿Cuál es el camino correcto?
... Sólo tienes que eliminarlo. No quieres eliminar las divisas. Así que tienes que eliminar la condición.
 
Lo he eliminado, pero los pedidos de otros pares siguen sin cerrarse. El error 129 (precio incorrecto) comenzó a aparecer
 
nemo811:
Lo he eliminado, pero de todas formas mis pedidos de otros pares no se cierran. El error 129 (precio incorrecto) sigue apareciendo

derecho aparece.

Hay que tomar la oferta y la demanda de la función MarketInfo

como - ask= MarketInfo(OrderSymbol(), MODE_ASK);

y no te olvides de normalizar
ask=NormalizeDouble(ask, MarketInfo(OrderSymbol(), MODE_DIGITS))