Я вспомнил этот код с fxgeneral, только там код был рабочий, а этот полный хлам, т.к. в него кто-то влез без понятия, что делает. Я разгребать его не буду! Он только при компиляции выдает 48 ошибок!!! Не предупреждений, а ошибок! Это как надо было рабочий код убить?vladradon,
Вот код(походу ваших рук дело)
Вот 2 варианта: первый, что я скопировал с этой страницы и перенес в сова и второй - тот, что я сейчас у себя нашел (что странно, т.к. этому хламу сто лет и это не мой хлам - я просто над ним экспериментировал давным давно). Свой я сейчас поправил - убрал все предупреждения и ошибок в нем не было. Но стохастиком не занимался. Может eevviill2 найдет время - теперь это не сложно будет.vladradon,
Кстати ну не знаю в моем случае ошибок 0 предупреждения одни.
Добрый день!
Нашел тут на просторах подсказку,не много хочу под себя её подстроить. но ....
Хотелось бы,чтоб по первой прибыльной сделке, вернулся стартовый лот,ну и явно там что-то да не корректно хоть и ошибок вроде нет.Если не затруднит помогите.Надеюсь это не сложно будет как для меня.Спасибо кто поправит.само собой.
double Lots()
{
double Lot=Lots;
int OO = OrdersTotal();
if(OO > 0)
for (int j = OO-1;j>=0; j--)
{
if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == 111)
{
if(OrderLots() > Lots)
{
Lots= OrderLots() ;
}
{
Lot=Lots*mult;
}
Чтобы по первой прибыльной сделке что-либо сделать нужно определить прибыльна-ли сделка. А в этом коде такой проверки нету.Пропустил маленько.Вот на сякий случай.
extern double mult = 1.5;
extern double Lots = 0.1;
а это в конце функции
}
}
return(Lot);
}
Привет. Чирканул функцию по-быстрому. Только вопрос: что должна возвращать функция, если нет плюсового закрытого ордера и нет ордеров в рынке на данный момент (последний return). Я поставил возврат начального лота, получается. Но может нужно будет возвращать 0 - нужно по стратегии продумать!Если не затруднит помогите.
double LotS()
{
double Lot=Lots;
if(OrdersHistoryTotal()>0)
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
if(OrderSymbol()==_Symbol && OrderMagicNumber()==111)
if(OrderProfit()>0) return(Lot);
for(int j=OrdersTotal()-1; j>=0; j--)
if(OrderSelect(j, SELECT_BY_POS, MODE_TRADES))
if(OrderSymbol()==_Symbol && OrderMagicNumber()==111)
if(OrderLots()>Lots) Lot=OrderLots()*mult;
return(Lot);
}
Еще у меня сомнение, что нужна последняя проверка в строкеЧирканул функцию по-быстрому.
if(OrderLots()>Lots) Lot=OrderLots()*mult;
Lot=OrderLots()*mult;
Она не множит из-за проверки, которую я рекомендовал убрать во втором сообщении. Вообще правильнее было бы так:Спасибо,но к сожалению функция не множит.
double LotS()
{
double Lot=Lots;
int Or=0;
for(int a=0; a>OrdersTotal(); a++)
if(OrderSelect(a,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==_Symbol && OrderMagicNumber()==111)
Or++;
if(OrdersHistoryTotal()>0 && Or==0)
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if(OrderSymbol()==_Symbol && OrderMagicNumber()==111)
if(OrderProfit()>0) return(Lot);
if(Or>0)
for(int j=OrdersTotal()-1; j>=0; j--)
if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==_Symbol && OrderMagicNumber()==111)
{Lot=OrderLots()*mult; break;}
return(Lot);
}
double LotS()
{
double Lot=Lots;
int Or=0;
for(int a=0; a>OrdersTotal(); a++)
if(OrderSelect(a,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==_Symbol && OrderMagicNumber()==111)
Or++;
if(Or>0)
for(int j=OrdersTotal()-1; j>=0; j--)
if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==_Symbol && OrderMagicNumber()==111)
{Lot=OrderLots()*mult; break;}
return(Lot);
}
Упрощенно.Господа,
Очень нужна помощь. Имеется индикатор, очень простой и всем, наверное, известный: Trend Magic. Основан на двух стандартных индикаторах: CCI(50) и ATR(5). Рисует очень красивые линии на графике. У меня, как чайника в программировании, имеется вопрос: как из значений CCI и ATR получается значение, которое отображается на графике цены и по которому рисуется эта самая линия? Можете вывести формулу?
Ачо нельзя на текущем графике нарисовать линии от другого символа?Он не будет работать по всем символам одновременно! -Только на том, на котором стоит.- 0-идентификатор графика в терминале и у тебя только текущий указан (0). Чтобы трал работал по всем открытым графикам, нужно считывать ID графика и по нему уже рисовать линию на нужном графике, а не на текущем. Только я однажды пытался сделать считывание ID открытых графиков и терминал выдавал только 0 первого графика, а все остальные были EMPTY и фиг, что дальше сделаешь. Поэтому я нашел другой способ виртуального трала по всем ордерам всех графиков - думай дальше, студент.PHP:ObjectCreate(0,name,OBJ_HLINE,0,0,price);