[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1095
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
да еще сразу ненаписал советник без индикаторный вообще нету индикаторов работает тупо по ордерам которые выставляются на покупку и на продажу и так далее--- причем тогда периоды которые менял в тестере советников и конечный результат все равно нечего непонимаю
Без самого советника ничего сказать нельзя. Только одни догадки
Что делать с Ilan6, чтобы он начал торговать? С какой суммы он начинает работать и работает ли на центовом вобще?
да еще сразу ненаписал советник без индикаторный вообще нету индикаторов работает тупо по ордерам которые выставляются на покупку и на продажу и так далее--- причем тогда периоды которые менял в тестере советников и конечный результат все равно нечего непонимаю
Да, надо сам код смотреть. Ведь есть же у него какая-нибудь стратегия, на основе каких вычислений он открывает и закрывает ордера?
Подскажите где ошибка? Нужно, чтобы если есть рыночный ордер на продажу по нашему фин. инструменту, то закрыть его и если нет на покупку, то открыть один ордер на покупку. С закрытием то тут всё нормально, а вот открывает он их не один а при каждом тике.
//--------------------------------------------------------------------------------------------
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------
Подскажите где ошибка? Нужно, чтобы если есть рыночный ордер на продажу по нашему фин. инструменту, то закрыть его и если нет на покупку, то открыть один ордер на покупку. С закрытием то тут всё нормально, а вот открывает он их не один а при каждом тике.
//--------------------------------------------------------------------------------------------
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------
Или лучше так сделать? Ведь если ордеров на продажу нет, то и покупки не будет.Подскажите.
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------
Правило исполнения оператора for
Вот вы мне скажите: пришёл тик, условие оператора for является истинным, управление передаётся дальше - это всё будет происходить во время одного тика т.е. все эти операторы будут исполнен во время прихода 1 тика или нет.
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------
Или какие именно операторы будут исполнены в этом тике? Все вышеперечисленные или какие то из них будут исполнены во время следующего тика? Объясните...
Правило исполнения оператора for
Вот вы мне скажите: пришёл тик, условие оператора for является истинным, управление передаётся дальше - это всё будет происходить во время одного тика т.е. все эти операторы будут исполнен во время прихода 1 тика или нет.
Или какие именно операторы будут исполнены в этом тике? Все вышеперечисленные или какие то из них будут исполнены во время следующего тика? Объясните...
Функция старт() выполняется при приходе первого тика. Если при работе функции придут другие тики, то они будут пропущены.
Функция старт выполнится полностью согласно заложенной в нее логики
Правило исполнения оператора for
Вот вы мне скажите: пришёл тик, условие оператора for является истинным, управление передаётся дальше - это всё будет происходить во время одного тика т.е. все эти операторы будут исполнен во время прихода 1 тика или нет.
extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------
Или какие именно операторы будут исполнены в этом тике? Все вышеперечисленные или какие то из них будут исполнены во время следующего тика? Объясните...
Разобрался. Все операторы будут исполнены если условие истонное.