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

 

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!

 
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