MakarFX
Элитный участник
Это нельзя назвать объединениемМожно.
TFInd - период запуска индикатора - не думаю, что имеет смысл запускать его по каждому тику - можно раз в минуту поставить минимум, чтобы не тормозил тестирование.
Это нельзя назвать объединениемМожно.
TFInd - период запуска индикатора - не думаю, что имеет смысл запускать его по каждому тику - можно раз в минуту поставить минимум, чтобы не тормозил тестирование.
Можно. Можно еще как ресурс вставить.Это нельзя назвать объединением
Есть два варианта решения проблемы:Дорогие коллеги. Подскажите, есть индикатор, по нему написан эксперт. Что бы потестировать эксперт нужно накидывать его в тестере через визуализатор, в связи с чем все работает очень медленно и не возможно оптимизировать параметры индикатора. Можно ли объединить код эксперта и индикатора, совместить их логику?
Смысл, возможная прибыль. в интернете единицы роботов которые торгуют по уровнямЕсть два варианта решения проблемы:
1) Доработать индикатор, а именно: вывести в буферы ценовые значения уровней.
2) Перенести сам расчет уровней в код советника.
Все реализуемо, был бы смысл...
Спасибо буду пробовать...Можно.
TFInd - период запуска индикатора - не думаю, что имеет смысл запускать его по каждому тику - можно раз в минуту поставить минимум, чтобы не тормозил тестирование.
Вообще элементарно и таких советников полно в сети!Хочу спросить по поводу автоматического расчета мани менеджмента исходя из результатов сделок, думаю мало кто просил об этом в этой теме.
Допустим есть стратегия, где вход по паттерну,
можно ли уменьшать или увеличивать размер лота исходя из результата прошлой сделки?
Например:
стандартный риск на сделку 2%
если мы получили -
советник должен рассчитать вход с риском 0.5% до того момента, пока не будет плюсовая сделка, есть плюсовая, дальше возврат к риску 2%.
Насколько это сложно реализовать?
Спасибо большое! Даже сделали что я хотел бы но не попросил, данные теперь слева на право.
Приветствую уважаемые специалисты! Прошу сделать в индикаторе возможность отключать ненужные ТФ и оставлять необходимые. Ещё желательно (но смотрите сами) менять размер шрифта. Либо вообще просто сделать чтоб все ТФ было видно в подвале, открываю индюк не все влазят ТФ.
Сделать самому возможность выбирать TF для отображения у меня не получилось, поэтому я скопировал код у доработанного MakarFX индикатора, а для закрепления новой для меня информации сделал реверсивное отображение TF .
Ну мне думается и тебе огромное человеческое спасибо!)Сделать самому возможность выбирать TF для отображения у меня не получилось, поэтому я скопировал код у доработанного MakarFX индикатора, а для закрепления новой для меня информации сделал реверсивное отображение TF .
Сделал удобнее выбор TF, для показаний ATR установил формат точности четыре знака после точки, и на всякий случай сделал возможность сдвигать показания индикатора по горизонтали.
Спасибо MakarFX и Всем тем Программистам кто делится открытым кодом.
в уму примерно прикинул что ты хочешь (точнее - как я это представляю). тут, наверное, лучше всего использовать моральное ожиданиеХочу спросить по поводу автоматического расчета мани менеджмента исходя из результатов сделок, думаю мало кто просил об этом в этой теме.
Допустим есть стратегия, где вход по паттерну,
можно ли уменьшать или увеличивать размер лота исходя из результата прошлой сделки?
Например:
стандартный риск на сделку 2%
если мы получили -
советник должен рассчитать вход с риском 0.5% до того момента, пока не будет плюсовая сделка, есть плюсовая, дальше возврат к риску 2%.
Насколько это сложно реализовать?
Примерно такв уму примерно прикинул что ты хочешь (точнее - как я это представляю). тут, наверное, лучше всего использовать моральное ожидание
//+------------------------------------------------------------------+
//| Расчет лота |
//+------------------------------------------------------------------+
double Lots()
{
double lot=0;
double minlot = MarketInfo(Symbol(),MODE_MINLOT);
double maxlot = MarketInfo(Symbol(),MODE_MAXLOT);
double lotstep = MarketInfo(Symbol(),MODE_LOTSTEP));
// если последняя закрытая сделка убыточная
if(GetInfoLastPos()<0)
{
lot="риск 0,5%";
}
// если последняя закрытая сделка прибыльная
if(GetInfoLastPos()>0)
{
lot="риск 2%";
}
if(lot<minlot) lot = minlot;
if(lot>maxlot) lot = maxlot;
return(lot);
}
//+------------------------------------------------------------------+
//| Профит последнего ордера |
//+------------------------------------------------------------------+
double GetInfoLastPos()
{
datetime t=0;
double result=0;
int i=OrdersHistoryTotal();
for(int pos=0; pos<i; pos++)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))
{
if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(t<OrderCloseTime()) {t=OrderCloseTime(); result=OrderProfit()+OrderCommission()+OrderSwap();}
}
}
}
}
return(result);
}
//+------------------------------------------------------------------+
Прошу пардону, индикатор не корректно показывал значения ATR (количество знаков после точки) на валютных парах с JPY и металлами, пришлось исправить...Сделать самому возможность выбирать TF для отображения у меня не получилось, поэтому я скопировал код у доработанного MakarFX индикатора, а для закрепления новой для меня информации сделал реверсивное отображение TF .
Сделал удобнее выбор TF, для показаний ATR установил формат точности четыре знака после точки, и на всякий случай сделал возможность сдвигать показания индикатора по горизонтали.
Спасибо MakarFX и Всем тем Программистам кто делится открытым кодом.
Маленькая поправочка: нет смысла дважды вызывать ф-цию GetInfoLastPos(), перед её вызовом присвоить переменной lot="риск 2%"; а затем уже сам вызов ф-ции. Если она вернет отрицательный результат, тогда переназначим: lot="риск 0,5%".Примерно так
Я вообще хотел else поставить, но копипаст подвел)Маленькая поправочка: нет смысла дважды вызывать ф-цию GetInfoLastPos(), перед её вызовом присвоить переменной lot="риск 2%"; а затем уже сам вызов ф-ции. Если она вернет отрицательный результат, тогда переназначим: lot="риск 0,5%".
ты уже полный расклад написал)Примерно так
Код://+------------------------------------------------------------------+ //| Расчет лота | //+------------------------------------------------------------------+ double Lots() { double lot=0; double minlot = MarketInfo(Symbol(),MODE_MINLOT); double maxlot = MarketInfo(Symbol(),MODE_MAXLOT); double lotstep = MarketInfo(Symbol(),MODE_LOTSTEP)); // если последняя закрытая сделка убыточная if(GetInfoLastPos()<0) { lot="риск 0,5%"; } // если последняя закрытая сделка прибыльная if(GetInfoLastPos()>0) { lot="риск 2%"; } if(lot<minlot) lot = minlot; if(lot>maxlot) lot = maxlot; return(lot); } //+------------------------------------------------------------------+ //| Профит последнего ордера | //+------------------------------------------------------------------+ double GetInfoLastPos() { datetime t=0; double result=0; int i=OrdersHistoryTotal(); for(int pos=0; pos<i; pos++) { if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY)) { if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { if(t<OrderCloseTime()) {t=OrderCloseTime(); result=OrderProfit()+OrderCommission()+OrderSwap();} } } } } return(result); } //+------------------------------------------------------------------+
Не глупость! Очень полезная информация для меня. Спасибо.ты уже полный расклад написал)
а я сейчас какую-нибудь глупость скажу...но меня потянуло)