Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1094
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ты советник вручную на графики цепляешь и тебе надо, чтобы на КАЖДОМ из графиков он открывал MaxOpenOrders ордеров или ВСЕГО MaxOpenOrders ордеров? И каких ордеров: только рыночных или всех, включая limit и stop?
Ты советник вручную на графики цепляешь и тебе надо, чтобы на КАЖДОМ из графиков он открывал MaxOpenOrders ордеров или ВСЕГО MaxOpenOrders ордеров? И каких ордеров: только рыночных или всех, включая limit и stop?
С какой целью выделены слова "в этой стратегии"? Magic нужен, если на счете заключаются сделки вручную или еще другой советник запущен, чтобы эти ордер не трогать. По-моему так.
Нужно чтоб открывал всего для всех инструментов. Допустим MaxOpenOrders равен 1 должен открывать только один рыночный ордер. Это бот для бинарных опционов, там нет никаких отложенных ордеров. Правда, он работает сериями, если позиция закрывается в убытке, то открывается такая же только с увеличенным лотом и пока серия не закончится прибыльной сделкой не должны открываться никакие сделки по другим инструментам.
Ок, про бинарные опционы я упустил. Мне почему-то кажется, что если вручную цеплять на разные графики один и тот же советник, то всё равно будет считаться, что запущены разные советники. И для КАЖДОГО графика будет запускаться 1 опцион (ну когда работать будет как надо). Могу ошибаться, т.к. сам новичок. Я вопрос мультивалютности делал в самом советнике вот таким образом:
input string TradeSymbols = "EURUSD, GBPUSD, AUDUSD, NZDUSD, USDCAD, USDCHF, GBPCAD"; // символы для торговли
string Symbols[50]; // 50 -максимально возможное количество символов
int SymbolCount;
//--------------------------------------------------
int OnInit()
{
if (IsTesting() || !ExtractSymbols())
{
SymbolCount = 1;
Symbols[0] = Symbol();
}
return(INIT_SUCCEEDED);
}
//--------------------------------------------------
bool ExtractSymbols()
{
ushort Comma = StringGetCharacter(",", 0);
SymbolCount = StringSplit(TradeSymbols, Comma, Symbols);
for (int i = 0; i < SymbolCount; i++)
{
StringToUpper(Symbols[i]);
Symbols[i] = StringTrimRight(Symbols[i]); // защита от случайных пробелов
Symbols[i] = StringTrimLeft(Symbols[i]);
}
if (SymbolCount > 0) return(true);
return(false);
}
//--------------------------------------------------
void OnTick()
{
for (int i = 0; i < SymbolCount; i++)
{
double LastAsk = SymbolInfoDouble(Symbols[i], SYMBOL_ASK);
double LastBid = SymbolInfoDouble(Symbols[i], SYMBOL_BID);
// и так далее...
}
}
Цеплять советник на любой график. Так точно MaxOpenOrders будет для всех графиков.
Ок, про бинарные опционы я упустил. Мне почему-то кажется, что если вручную цеплять на разные графики один и тот же советник, то всё равно будет считаться, что запущены разные советники. И для КАЖДОГО графика будет запускаться 1 опцион (ну когда работать будет как надо). Могу ошибаться, т.к. сам новичок. Я вопрос мультивалютности делал в самом советнике вот таким образом:
input string TradeSymbols = "EURUSD, GBPUSD, AUDUSD, NZDUSD, USDCAD, USDCHF, GBPCAD"; // символы для торговли
string Symbols[50]; // 50 -максимально возможное количество символов
int SymbolCount;
//--------------------------------------------------
int OnInit()
{
if (IsTesting() || !ExtractSymbols())
{
SymbolCount = 1;
Symbols[0] = Symbol();
}
return(INIT_SUCCEEDED);
}
//--------------------------------------------------
bool ExtractSymbols()
{
ushort Comma = StringGetCharacter(",", 0);
SymbolCount = StringSplit(TradeSymbols, Comma, Symbols);
for (int i = 0; i < SymbolCount; i++)
{
StringToUpper(Symbols[i]);
Symbols[i] = StringTrimRight(Symbols[i]); // защита от случайных пробелов
Symbols[i] = StringTrimLeft(Symbols[i]);
}
if (SymbolCount > 0) return(true);
return(false);
}
//--------------------------------------------------
void OnTick()
{
for (int i = 0; i < SymbolCount; i++)
{
double LastAsk = SymbolInfoDouble(Symbols[i], SYMBOL_ASK);
double LastBid = SymbolInfoDouble(Symbols[i], SYMBOL_BID);
// и так далее...
}
}
Цеплять советник на любой график. Так точно MaxOpenOrders будет для всех графиков.
а если следующая неделя пошла, а мне нужно все еще вести отчет от цены открытия бара вторника прошлой недели? т.е. мне нужно так, чтобы советник определил цену открытия бара во вторник и отталкивался от нее столько времени,сколько нужно, например - неделя, две, месяц и т.д.
Спасибо.
а если следующая неделя пошла, а мне нужно все еще вести отчет от цены открытия бара вторника прошлой недели? т.е. мне нужно так, чтобы советник определил цену открытия бара во вторник и отталкивался от нее столько времени,сколько нужно, например - неделя, две, месяц и т.д.
Спасибо.
Тогда задаёте конкретную дату и программа берёт цену открытия дня для той даты, это ещё проще даже.
Тогда задаёте конкретную дату и программа берёт цену открытия дня для той даты, это ещё проще даже.
можете с кодом помочь, я не догоняю то-то.
а может расчет цены открытия первого бара во вторник уложить в OnInit() и он рассчитает цену при запуске и запомнит ее пока советник не перезапустить? как думаете?
если бред пишу, прошу прощения, я только учусь)
можете с кодом помочь, я не догоняю то-то.
а может расчет цены открытия первого бара во вторник уложить в OnInit() и он рассчитает цену при запуске и запомнит ее пока советник не перезапустить? как думаете?
если бред пишу, прошу прощения, я только учусь)
Цена открытия первого бара дня = цена открытия дневного бара. Можно и в ините, если потом не возникнет нужды перерассчитывать это значение.
Код примерно такой: