[¡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()
}
//--------------------------------------------------------------------

[Eliminado]  

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.

[Eliminado]  
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