[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 453

 

¡Buenas tardes!

Si una orden pendiente es activada por un script, ¿cómo puedo separar este script de la ventana de la herramienta?

Gracias de antemano.

 
baltik >>:

НЕТ

Скрипт при исполнении делает файл с историей в папку ексерт\филес\ имя файла (это номер счета)

Все очень просто скрипт на 3 терминалах исполняется скажем в 6 утра автоматом

Значит нам не надо открывать терминалы - отрываем базу и новые данные уже в ней подхвачены готовые к анализу (это уже реализовано)

% деятельности с посчитанными свопами, сводными таблицами и графиками и т.д.

Ningún script puede abrir la terminal.

Así que si quieres que funcione, debe ser en un terminal que esté abierto y conectado a la red. Se ejecutará a la hora requerida y registrará los datos. Pero los terminales deben estar siempre encendidos.

 
Aleks25 >>:

Добрый день!

Как сделать, если сработал отложенный скриптом ордер, чтобы этот скрипт отсоединить от окна инструмента?

Заранее благодарен.

el script se ejecuta una vez en el gráfico y no requiere una desconexión manual.

 
sergeev >>:

скрипт выполняется на графике один раз и не требует ручного отсоединения.

Lamentablemente, si no se desconecta de la ventana, cuando se cierra la orden anterior se abre la siguiente.

 
¿es un guión o un experto?
 
Por código un script, pero está en el directorio de expertos.
 

Este es su código

Desplaza la orden pendiente al cambiar el precio


//--------------------------------------------------------------------
extern double OTSTUP_BUY = 7;
extern double TakeProfit = 100;
//extern double BuyStop = 0;
//extern double StopLoss = 0;
extern double Lots = 0.01;
//extern double TrailingStop = 21;

double min =100000;
double
lmax, // Precio umbral, una vez superado
// consideramos vender (abs)
lmin, // Igual para Buy
Lot;

int Count=0;
int total=0;
int Ticket=0; // Variable global.
//--------------------------------------------------------------------
int init() // Special init()

{
int total=OrdersTotal(); // sólo órdenes abiertas
string Symbol1=Symbol();
double metka=0;
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) continue;
{
if(OrderSymbol()==Symbol())
{
metka=1;
Alert("Order #", OrderTicket(), " en ", OrderSymbol());

}
else
{
}
}

}

if(metka==0 )
// if(metka==0 && UROVEN>=Ask)

{

double bid =MarketInfo(Symbol(),MODE_BID); //Solicitar valor de oferta
double ask =MarketInfo(Symbol(),MODE_ASK); //Solicitar valor de demanda
double min =MarketInfo(Symbol(),MODE_ASK); //Solicitar valor de demanda
double point =MarketInfo(Symbol(),MODE_POINT)//Punto de consulta
OrderSend(Symbol(),OP_BUYSTOP,Lots,bid+OTSTUP_BUY*Point,3,bid-1*Point,bid+TakeProfit*Point);
int Ticket=OrderTicket();
//OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyStop,3,StopLoss,TakeProfit, "Bye Stop 1");
Alert (Ticket); // Mensaje de error
// Alert (Symbol()," ",OP_BUYSTOP," ",0.01," ",ask+10*Punto," ",3," ",ask-35*Punto," ",ask+35*Punto);
Alert (GetLastError());
}


return; // Salir de init()
}

//--------------------------------------------------------------------
int start() // Especial. function start()
{
if(min>Bid) min=Bid;
{ // Cuenta el precio mínimo




int total=OrdersTotal(); // sólo órdenes abiertas
string Symbol1=Symbol();
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) continue;
{
if(OrderSymbol()==Symbol())
{
Alert("Orden #", OrderTicket(), " en ", OrderSymbol());
Alert (min);
OrderModify(OrderTicket(),min+OTSTUP_BUY*Point,min-1*Point,min+TakeProfit*Point,0);//Modificar
Alert (GetLastError());
Alert(Symbol(), "",OrderTicket()), OrderTicket()," ",min+OTSTUP_BUY*Point," ",min-1*Point," ",min+TakeProfit*Point," ",0);
}
}
}



}
return; // Salir de init()
}

//--------------------------------------------------------------------
int deinit() // Especial. f-iia deinit()
{
// Alerta ("Deinit() f-iia disparada al descargar"); // Mensaje
return; // Salir deinit()
}
//--------------------------------------------------------------------

 

cadena iii[];

iii[0] = "1";
iii[1] = "2";
iii[2] = "3";

MessageBox(iii[0]);
MessageBox(iii[1]);
MessageBox(iii[2]);
emite el número 3 tres veces! en lugar del correcto 1, 2, 3.... ¿WTF?

Gracias.

 
Supongo que el problema es que no he especificado el número de elementos del array, pero ¿qué pasa si el número de elementos es inicialmente desconocido y el array se llena en el bucle? (en mi caso, al leer de un archivo)
 
mrddt >>:
догадываюсьчто проблема в том что я не указал кол-во элементов в массиве. а что делать если кол-во элементов изначально неизвесно и массив заполняется в цикле? (в моём случае при чтении из файла)

ArrayResize