[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 453

 

Buon pomeriggio!

Se un ordine pendente è attivato da uno script, come posso staccare questo script dalla finestra dello strumento?

Grazie in anticipo.

 
baltik >>:

НЕТ

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

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

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

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

Nessuno script può aprire il terminale!

Quindi, se volete che funzioni, deve essere su un terminale aperto e connesso alla rete. Verrà eseguito al tempo richiesto e registrerà i dati. Ma i terminali devono essere sempre accesi.

 
Aleks25 >>:

Добрый день!

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

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

lo script viene eseguito una volta sul grafico e non richiede una disconnessione manuale.

 
sergeev >>:

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

Purtroppo, se non è scollegato dalla finestra, quando si chiude l'ordine precedente si apre l'ordine successivo.

 
è un copione o un esperto?
 
Per codice uno script, ma è nella directory degli esperti.
 

Ecco il suo codice

Sposta l'ordine pendente su un cambiamento di prezzo


//--------------------------------------------------------------------
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, // Prezzo soglia, dopo che è passato
// consideriamo la vendita (abs)
lmin, // Lo stesso per Buy
Lot;

int Count=0;
int total=0;
int Ticket=0; // variabile globale.
//--------------------------------------------------------------------
int init() // Special init()

{
int total=OrdersTotal(); // solo ordini aperti
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(), " in ", OrderSymbol());

}
else
{
}
}

}

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

{

double bid =MarketInfo(Symbol(),MODE_BID); // Request Bid value
double ask =MarketInfo(Symbol(),MODE_ASK); // Request Ask value
double min =MarketInfo(Symbol(),MODE_ASK); // Request Ask value
double point =MarketInfo(Symbol(),MODE_POINT)//Query Point
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); // Messaggio di errore
// Alert (Symbol()," ",OP_BUYSTOP," ",0.01," ",ask+10*Point," ",3," ",ask-35*Point," ",ask+35*Point);
Alert (GetLastError());
}


return; // Exit init()
}

//--------------------------------------------------------------------
int start() // Speciale. function start()
{
if(min>Bid) min=Bid;
{ // Conta il prezzo minimo




int total=OrdersTotal(); // solo ordini aperti
string Symbol1=Symbol();
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) continue;
{
if(OrderSymbol()==Symbol())
{
Alert("Ordine #", OrderTicket(), " in ", OrderSymbol());
Alert (min);
OrderModify(OrderTicket(),min+OTSTUP_BUY*Point,min-1*Point,min+TakeProfit*Point,0);//Modifica
Alert (GetLastError());
Alert(Symbol(), "",OrderTicket()), OrderTicket()," ",min+OTSTUP_BUY*Point," ",min-1*Point," ",min+TakeProfit*Point," ",0);
}
}
}



}
return; // Exit init()
}

//--------------------------------------------------------------------
int deinit() // Speciale. f-iia deinit()
{
// Alert ("Deinit() f-iia triggered on unloading"); // Messaggio
return; // Exit deinit()
}
//--------------------------------------------------------------------

[Eliminato]  

stringa iii[];

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

MessageBox(iii[0]);
MessageBox(iii[1]);
MessageBox(iii[2]);
emette il numero 3 tre volte! invece del corretto 1, 2, 3.... WTF?

Grazie!

[Eliminato]  
Credo che il problema sia che non ho specificato il numero di elementi nell'array, ma cosa succede se il numero di elementi è inizialmente sconosciuto e l'array viene riempito nel ciclo? (nel mio caso, quando si legge da un file)
 
mrddt >>:
догадываюсьчто проблема в том что я не указал кол-во элементов в массиве. а что делать если кол-во элементов изначально неизвесно и массив заполняется в цикле? (в моём случае при чтении из файла)

ArrayResize