[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 453

 

Добрый день!

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

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

 
baltik >>:

НЕТ

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

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

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

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

Ни один скрипт не может открыть терминал!

Поэтому если вам надо, чтоб он сработал - то он должен стоять на открытом и подключенном в нету терминале. Сработает он в требуемое время и запишет данные. Но терминалы должны быть включены обязательно.

 
Aleks25 >>:

Добрый день!

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

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

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

 
sergeev >>:

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

К сожалению, если его не отсоединить от окна, при закрытии прежнего ордера он открывает следующий ордер.

 
это скрипт или эксперт?
 
По коду скрипт, но находится в каталоге экспертов.
 

Вот его код

Сдвигает отложенный ордер при изменении цены


//--------------------------------------------------------------------
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, // Пороговая цена, после преодоления
// которой рассматриваем продажу(абс)
lmin, // То же для покупки
Lot;

int Count=0;
int total=0;
int Ticket=0; // Глобальная перемен.
//--------------------------------------------------------------------
int init() // Спец. ф-ия init()

{
int total=OrdersTotal(); // только открытые ордера
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("Открыт ордер #", OrderTicket(), " в ", OrderSymbol());

}
else
{
}
}

}

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

{

double bid =MarketInfo(Symbol(),MODE_BID); // Запрос значения Bid
double ask =MarketInfo(Symbol(),MODE_ASK); // Запрос значения Ask
double min =MarketInfo(Symbol(),MODE_ASK); // Запрос значения Ask
double point =MarketInfo(Symbol(),MODE_POINT);//Запрос 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); // Сообщение об ошибке
// Alert (Symbol()," ",OP_BUYSTOP," ",0.01," ",ask+10*Point," ",3," ",ask-35*Point," ",ask+35*Point);
Alert (GetLastError());
}


return; // Выход из init()
}

//--------------------------------------------------------------------
int start() // Спец. ф-ия start()
{
if (min>Bid) min=Bid;
{ // Считаем миним цену




int total=OrdersTotal(); // только открытые ордера
string Symbol1=Symbol();
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) continue;
{
if(OrderSymbol()==Symbol())
{
Alert("Открыт ордер #", OrderTicket(), " в ", OrderSymbol());
Alert (min);
OrderModify(OrderTicket(),min+OTSTUP_BUY*Point,min-1*Point,min+TakeProfit*Point,0);//Модиф
Alert (GetLastError());
Alert (Symbol()," ",OrderTicket()," ",min+OTSTUP_BUY*Point," ",min-1*Point," ",min+TakeProfit*Point," ",0);
}
}
}



}
return; // Выход из init()
}

//--------------------------------------------------------------------
int deinit() // Спец. ф-ия deinit()
{
// Alert ("Сработала ф-ия deinit() при выгрузке"); // Сообщение
return; // Выход из deinit()
}
//--------------------------------------------------------------------

 

string iii[];
   
iii[0] = "1";
iii[1] = "2";
iii[2] = "3";
   
MessageBox(iii[0]);
MessageBox(iii[1]);
MessageBox(iii[2]);
три раза выдаёт цифру 3! вместо положенных 1, 2, 3.... ВТФ?

спасибо!

 
догадываюсьчто проблема в том что я не указал кол-во элементов в массиве. а что делать если кол-во элементов изначально неизвесно и массив заполняется в цикле? (в моём случае при чтении из файла)
 
mrddt >>:
догадываюсьчто проблема в том что я не указал кол-во элементов в массиве. а что делать если кол-во элементов изначально неизвесно и массив заполняется в цикле? (в моём случае при чтении из файла)

ArrayResize

Причина обращения: