такой вот вопрос...

 
Предположим, что есть советник, работающий по часу, и клиент, который хочет, чтобы этот советник работал на 5-7 (а то и больше) парах одновременно. Сам советник на каждом тике производит проверку на открытые ордера (условие того, что вообще нет открытых ордеров, в принципе не возможно) и на основе magica и комента проверяет есть ли на данной паре открыты йордер или нет. Теперь, поскольку КАЖДЫЙ советник в КАЖДОМ окне и на КАЖДОМ тике производит такую проверку, то есть идея создать "первоначальный" эксперт, который будет производить цикл проверки тольок один раз и потом всем экспертами по каждой валюте "раздавать" задания (открыть соответсвенно или закрыть ордер). каким образом такое сделать? пока приходит в голову что-то типа глобальных булевых пепременных, которые каждый эксперт должен проверять... какие есть идеи? если кто с таким сталкивался скиньте примерчик плиз
 
Зачем раздавать, если вся математика в головном эксперте? В него же можно вставить и открытие ордеров по любым символам, а не только по символу рабочего окна.
 

а то есть вместо


if(OrderSymbol() == Symbol())
{
if(OrderMagicNumber() == magic)
{
...

}
}


написать


if(OrderSymbol() == "AUDUSD")
{
if(OrderMagicNumber() ==AUDUSDmagic)
{
...
}
}

if(OrderSymbol() == "USDPLN")
{
if(OrderMagicNumber() == USDPLNmagic)
{
...
}
}

и так для каждой пары?

и потом просоединить к каждому окну?

 
sashasan писал(а) >>

а то есть вместо

if(OrderSymbol() == Symbol())
{
if(OrderMagicNumber() == magic)
{
...

}
}

написать

if(OrderSymbol() == "AUDUSD")
{
if(OrderMagicNumber() ==AUDUSDmagic)
{
...
}
}

if(OrderSymbol() == "USDPLN")
{
if(OrderMagicNumber() == USDPLNmagic)
{
...
}
}

и так для каждой пары?

и потом просоединить к каждому окну?

Проще сделать массив с именами инструментов и потом в цикле их перебирать. А магик для всех инструментов может быть и один.

Или для каждого инструмента свой магик, и проверять только на него уже.

 
спасибо...
 

Имелось в виду, что в функцию открытия ордера можно вставлять любые доступные символы, а не только тот, на котором стоит советник. То есть, в одном советнике, стоящем в одном окне можно не только рассчитывать необходимость открытия ордера на другом символе, но и открывать ордера, вставив в OrderSend нужный символ. И не нужны дополнительные советники на других символах в других окнах. Пример можно посмотреть в мультивалютнике Решетова.

А уже с логикой разбирайтесь сами, когда, на каком символе и зачем открывать ордера.

OrderSend(

string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

 
спасибо, тут все как раз ясно, просто никак не мог предположить, что можно поставить эксперт только в одно окно и он будет работать на всех остальных... )))
 
Блин ну за что все комбайны так любят? Нету в них ничего хорошего.
 
А хто сказал, что их любят? Просто человек теперь знает, что можно и так, и так :))
 
как это нету, а экономия тактов процессора? ))) вот если б посчитать, а потом * колво минут * кол-во часов * кол-во дней ! )))
 
sashasan >>:
как это нету, а экономия тактов процессора? ))) вот если б посчитать, а потом * колво минут * кол-во часов * кол-во дней ! )))

у меня на терминале сейчас работают 6 советников с задержкой между циклами 200 мс.

Каждый из них использует 3 индюка. Все это богатство с терминалом вместе кушает меньше процента проца.

Так стОит ли городить огород из-за тактов процессора?