Перейти к содержанию

Доработка советников: общая тема


Рекомендуемые сообщения

  • Ответов 2,5k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Версия с правками. Я немного свернул код, чтобы не перебирались ордера попусту и чтобы проверка красной/синей зоны делалась в одном месте. Прогнал в тесте с настройками по умолчанию. Ожидаемо лье

Перейти

Нате 1_2_3 _Fraktal.mq4

Перейти

Система маятника, или попрыгунчика, или фиг ее знает как ее еще назвать не намного младше сетки мартингейла. Мы в далеком 2017 писали по ней сов с индикатором на вход: https://tlap.com/forum/labo

Перейти
Доработка советников: общая тема Опубликовано

Добрый день товарищи , кто напишет советник, на основе индикаторов, стратегия рабочая, куплена за деньги, хотелось бы по ней советника. Кто сможет, отзовись в личку, там будут подробности, за ранее спасибо!

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Дело было так написал я советник на mq4 он никак не хотел отложки открывать начал дебагать после в
коде

void OnTick()
{
Print("Ошибка №", GetLastError(), ", стоплевел = ", MarketInfo(Symbol(), MODE_STOPLEVEL), ", спрэд = ", MarketInfo(Symbol(), MODE_SPREAD));
}

Показал ошибки исправил потом не показал ни каких ошибок начал тестировать показал хороший результат в тестере но иногда в тестере показывает ошибку 130 и я её исправил проблема была с стопами в журнале ошибок нет но вот на демо счёте тишина ничего не работает брокер рофорекс ecn узкий спред да ещё кое что сам я начинающий программист если это можно так сказать до этого прочёл несколько статей про то почему совы не могут или не хотят работать первое появление нового бара отлавливаю пробовал ставить вот так и так нулевой результат

bool NewBarB(int TF=0)
{
static datetime NewTime=0;
if(NewTime!=iTime(Symbol(),TF,0))
{
NewTime=iTime(Symbol(),TF,0);
return(true);
}
return(false);
}
////////////////и так
void OnTick()
{

static datetime dtBarCurrent=WRONG_VALUE;
datetime dtBarPrevious=dtBarCurrent;
dtBarCurrent=(datetime) SeriesInfoInteger(_Symbol,_Period,SERIES_LASTBAR_DATE);
bool NewBarFlag=(dtBarCurrent!=dtBarPrevious);
if (NewBarFlag)
{

}

///////и так
if (Volume[0] > 1) return;


Смайли всегда :cheesy: А на Сервис настройка Советники галка стоит на автоторговле
прошу помочь.

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Ладно, давай запускать сову.
После объявления функции ОнТик() поставь принт - посмотри приходят-ли тики сове.

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано


Ошибок нет но ордера не открываются что делать не знаю помогите не оставляйте в трудную минуту fcplm


Перечитал 3 раза, так ничего и не понял. Как минимум нужно кинуть сюда код, чтобы свободный программист посмотрел его.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Ошибок нет но ордера не открываются что делать не знаю помогите не оставляйте в трудную минуту



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

Доработка советников: общая тема Опубликовано

Вот код открытия ордера что не так не пойму ордера не открываются.
На тестере всё хорошо ордера открываются без ошибок но на демо счёте нет никаких ошибок и ордера не открываются тишина.

Спойлер

input int      Magik=1461919;
extern double LotSize=0.1;
extern double StopLoss=20;
extern double TakeProfit=30;
extern int Slippage=5;

double pips;
int OnInit()
{

double ticksize=MarketInfo(Symbol(),MODE_TICKSIZE);
if(ticksize==0.00001 || ticksize==0.001)
pips=ticksize*10;
else pips=ticksize;

return(INIT_SUCCEEDED);
}

double LotsOptimized()
{
double lot=LotSize;
int orders=OrdersHistoryTotal(); // history orders total
int losses=0; // number of losses orders without a break
//--- select lot size
if(MaximumRisk>0)
{
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
}
//--- calcuulate number of losses orders without a break
if(DecreaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Error in history!");
break;
}
if(OrderSymbol()!=Symbol() /*|| OrderType()>OP_SELL*/)
continue;
//---
if(OrderProfit()>0) break;
if(OrderProfit() }
if(losses>1)
lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//--- minimal allowed volume for trade operations
double minlot=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
if(lot { lot=minlot; }
// Print("Volume is less than the minimal allowed ,we use",minlot);}
// lot=minlot;

//--- maximal allowed volume of trade operations
double maxlot=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
if(lot>maxlot)
{ lot=maxlot; }
// Print("Volume is greater than the maximal allowed,we use",maxlot);}
// lot=maxlot;

//--- get minimal step of volume changing
double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
int ratio=(int)MathRound(lot/volume_step);
if(MathAbs(ratio*volume_step-lot)>0.0000001)
{ lot=ratio*volume_step;}
return(lot);
/* else Print("StopOut level Not enough money for ",OP_SELL," ",lot," ",Symbol());
return(0);*/
}

double NDTP(double val)
{
// RefreshRates();
double SPREAD=MarketInfo(Symbol(),MODE_SPREAD);
double StopLevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(val// double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL);
//int Stops_level=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);

//if (Stops_level*pips//val=Ask+Stops_level*pips;
return(NormalizeDouble(val, Digits));
// return(val);
}

RefreshRates();
double ticketBuyStop= OrderSend(NULL,OP_BUYSTOP,LotsOptimized(),NDTP(Ask+StopLoss*pips),Slippage,0,NDTP(Ask+TakeProfit*pips),NULL,Magik,0,clrBlue);

RefreshRates();
double ticketSellStop=OrderSend(NULL,OP_SELLSTOP,LotsOptimized(),NDTP(Bid-StopLoss*pips),Slippage,0,NDTP(Bid-TakeProfit*pips),NULL,Magik,0,clrRed);
Изменено пользователем 0ll
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано
SolomonaX не нашёл функции OnTick() у Вас ордера выставляются при инициализации переменных?
и зачем Вам RefreshRates() через строчку? - исполнение идёт миллисекунду, тик просто не успеет обновиться.
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Пишу советника , вставил ALERT на открытие ордера. Он работает. Но он почему то работает и когда советник выключен... Выводит ALERT каждую секунду и не остановится , пока сову не удалишь из окна терминала. Так и должно быть ?

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

в любом эксперте, прежде, чем открывать позицию, вычисляется состояние рынка по каким-либо параметрам. Затем, если условия подошли, открывается позиция. Чтобы открыть позицию, эксперт вызывает функцию OrderSend. В параметры этой функции нужно передать самую свежую цену Bid или Ask, а пока эксперт вычислял состояние рынка, эти цены могли измениться. Но внутри всего блока OnTick, в текущем проходе, эти изменения автоматически не происходят. Новые цены будут только в следующем проходе OnTick, а нам они нужны в текущем проходе. Поэтому перед OrderSend надо написать RefrashRates вот поэтому я и написал перед OrderSend, RefrashRates. Вы считаете из за RefrashRates у меня ордера не открываются тогда почему в тестере ордера открываются.

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано


в любом эксперте, прежде, чем открывать позицию, вычисляется состояние рынка по каким-либо параметрам. Затем, если условия подошли, открывается позиция. Чтобы открыть позицию, эксперт вызывает функцию OrderSend. В параметры этой функции нужно передать самую свежую цену Bid или Ask, а пока эксперт вычислял состояние рынка, эти цены могли измениться. Но внутри всего блока OnTick, в текущем проходе, эти изменения автоматически не происходят. Новые цены будут только в следующем проходе OnTick, а нам они нужны в текущем проходе. Поэтому перед OrderSend надо написать RefrashRates вот поэтому я и написал перед OrderSend, RefrashRates. Вы считаете из за RefrashRates у меня ордера не открываются тогда почему в тестере ордера открываются.



Если просто, у Вас действия (все действия) совершаются в функции OnInit(), а она запускается при первом запуске советника и все. Для работы и вообще нужна функция OnTick(). А обновление данных функцией RefrashRates происходит тоже при запуске - она здесь абсолютно бесполезна!

Вопрос был почему не открываются отложки? Потому что весь процесс записан в функции OnInit(). Совет (добрый), почитайте Функции обработки событий в учебнике, там хорошо всё "разжевано"

Добавлено: 20-01-2019 12:42:42


Пишу советника , вставил ALERT на открытие ордера. Он работает. Но он почему то работает и когда советник выключен... Выводит ALERT каждую секунду и не остановится , пока сову не удалишь из окна терминала. Так и должно быть ?



Потому что выполняются условия для Алерта, а если они выполняются советник/индикатор Вам об этом сообщает. Для этого надо ставить флаг, функцию для определения отправки алерта, функцию алерта только на открытие свечи/бара , и т.д. Если просто, то на каждом тике соблюдаются условия для сообщения с помощью алерта и поэтому они сыпятся бесконечно. Изменено пользователем loveЦ
  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
Доработка советников: общая тема Опубликовано

Привет, помогите доработать советника, прикрутите к нему мартин и возможность закрывать сделки по % профита, сова неплоха на дневках, писали мне другой прогер в 13 году еще потом пропал и я забросил сову, теперь опять нашел на старом компе код, и решил продолжить, эксперименты, также если у кого есть идеи варианты милости прошу, сова по уровням мюрея, все довольно просто, но без мартина скучный профит дает.
Любая пара, дневной тайм.

©_Murrey_Auto_Trader_EA_v1.0.mq4

Изменено пользователем AAPL
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано


Пишу советника , вставил ALERT на открытие ордера. Он работает. Но он почему то работает и когда советник выключен... Выводит ALERT каждую секунду и не остановится , пока сову не удалишь из окна терминала. Так и должно быть ?


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

Доработка советников: общая тема Опубликовано

Привет всем! Есть советник (бывший скрипт) открывает байселлстоп ордера. Возможно его как то доработать, что бы после открытия серии ордеров он продолжал открывать по одному. Допустим пошла цена на верх, открывается селлстоп ближе к цене и наоборот.

OpenGrid.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Всем привет! Уважаемые программисты доработайте советник пожалуйста, файлы и ТЗ в архиве.
Заранее спасибо.

Новая_доработка.rar

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Желающим доработать свои советники: нужно как-то соблазнить программиста этим заняться. Не стесняйтесь, давайте больше информации, картинки, описание стратегии и т.д. Без этого думаю ни чего не получится.

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Всем привет! Уважаемые программисты, доработайте советник Bamsbung_TMA_Mart_Div_Screen_2_EA пожалуйста, доработка заключается в добавлении в советник функции для отключения открытия ордеров
по сигналам стрелок индикатора 4BAMSBUNG_FLAME(Hist)_Div_Filter++ и добавления в настройки советника параметра false/true для отключения\включения этой функции в работу.
В советнике предусмотрена торговля по паттерну от индикатора 4BAMSBUNG_FLAME(Hist)_Div_Filter++, паттерн представляет собой появление точки на свече, а через какое-то количество
свечей появляется стрелка такого же цвета как точка, по сигналу этой стрелки открывается соответствующая позиция.
Если в советнике будет отключаться функция по открытию позиций по сигналу стрелки, значит советник должен уметь различать паттерн (комбинация точки и стрелки) и одиночную стрелку,
как два разных сигнала для открытия позиций, на скрине №3 подробное описание.
В советнике есть фильтр tma_filter_pate отвечающий за открытие позиции по сигналу точки, надо открытие позиции по сигналу паттерна привязать к параметру tma_diff_points_pate.

Так же надо исправить работу функции tma_middle_filtеr, не скриншоте №1 -описание работы этой функции, на скриншоте №2 в чем ошибка работы этой функции.
Эта функция должна работать с каждым условием открытия, т.е. с открытием по сигналу одной стрелки, с открытием по сигналу паттерна, с открытием по сигналу точки.
Надо убрать красную кнопку с графика, которая появляется после установки советника.
Заранее спасибо.

1.jpg
2.png
3.jpg
4BAMSBUNG_FLAMEHist_Div_Filter++.mq4
BAMSBUNG.dll
Bamsbung_TMA_Mart_Div_Screen_2_EA.mq4
TMA_CG_MTF_AA_TT_mod.mq4

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Спасибо все сделали

EA_v1.09.zip

Изменено пользователем Андрей Сталинград
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Доброго времени суток, уважаемые!
Есть совенышь, можно ли его переделать, чтоб работал на RENKO графиках.
На просторах интернета, нашел увлекательно-душещипательную статью, о том, что надо изменить и дописать, http://myoption.ru/Renko-sovetnik-analiziruem-rynok-Foreks-po-kirpichikam, но вот незадача, в коде, ввиду своей неграмотности в программировании, я так и не нашел, куда применить знания, полученные в статье.

p_s_3MA.ex4

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Есть совенышь, можно ли его переделать, чтоб работал на RENKO графиках.

Нужен исходный код с расширением файла .mq4
Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
Доработка советников: общая тема Опубликовано


Ребята, кто поможет исправить Сову. На новой платформе он застрял


Проверил. Ошибок критических нет. В тестере открывает и закрывает.

Опишите проблему. Что значит застрял?

BenefitEA.ex4

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Доброго времени суток господа, пользуясь наличием времени (на сон тратится пол жизни), прочитал пару строк по программированию, попробовал переделать сов сам, ну нашел еще 1 сов и решил поковырять, в тестере на обычных графиках ведет себя как должен, т.е. никак, поставил на график, буду смотреть, если кому-то надо берите, работает или нет отпишусь позже.


Добавлено: 01-03-2019 11:42:01

Ура, епта!!!
Простите, эмоции, сов работает, сделки открывает, вроде даже как надо!!!
Так что, кому надо может пользоваться, щас попробую допилить еще пару кнопок и фунций от сайлент спека.

Добавлено: 01-03-2019 15:45:04

Рано радовался, надо допилить!!!

3MAоригинал.mq4

Изменено пользователем big13
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

  • idinesh changed the title to Assae Elite Pro tlap version source code need i have plan convert this mt4 to mt5 and it possible mt4 dll file modified mt5 version
  • Pavel888 pinned this тема

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • ×
    ×
    • Создать...