Доработка ботов (советников, индикаторов)

Статус
Закрыто для дальнейших ответов.

odin343

Активный участник
Добрый день, сможет ли кто-нибудь доработать советник Онда fx из этой темы?

http://forexsystemsru.com/sovetniki/73160-ondafx-expert-advisor.html

Советник открывает сделки в обратном направлении при пробитии полос Боллинджера. В результате больше 50% сделок либо усредняется, либо пересиживается. Хотелось бы встроить реверс на открытие позиций, чтобы открывал по направлению пробития полос.
 

eevviill

Заблокирован
Добрый день, сможет ли кто-нибудь доработать советник Онда fx из этой темы?

http://forexsystemsru.com/sovetniki/73160-ondafx-expert-advisor.html

Советник открывает сделки в обратном направлении при пробитии полос Боллинджера. В результате больше 50% сделок либо усредняется, либо пересиживается. Хотелось бы встроить реверс на открытие позиций, чтобы открывал по направлению пробития полос.
Аналогично посту выше.
Если бы писали как я, то там реверс дело 2 минут. А тут весь советник надо лопатить.
 

shaban1979

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

Вложения

shaban1979

Прохожий
Спасибо!
Пока ждал ответа, нашел на просторах тырнета его же с фиксированным лотом.
 

igornt9

Интересующийся
Сделай пример, посмотрим.

Добрый день не могу решить следующую задачу есть массив (назовем его wins) в нем есть номера тикетов, есть также номера 0 и -100 - так обозначил ненужные тикеты. Как построить динамический массив, назовем его wins_shortticket который будет иметь только хорошие нам номера (т. е массив в котором нет 0 и -100) и имеет нужную размерность
Пробую так, но счетчик countticket_sh убегает и все портится....
Помогите исправить код

start ()
{
....
int countticket_sh=0; // счетчик элементов необходимого массива //wins_shortticket
bool jt;// попробовал ввести, чтобы countticket_sh не убегала

if (wins_shortticket[countticket_sh]==0) jt=true;
for (int jl=0;jl<=ArraySize(wins);jl++)
{
if (wins[jl]!=0)
{
if (wins[jl]!=-100)
{
if (jt==true) countticket_sh++;
ArrayResize(wins_shortticket,countticket_sh);
wins_shortticket[countticket_sh-1]=wins[jl];
jt=false;
if (wins_shortticket[countticket_sh-1]!=0) jt=true;
}
}

}
countticket_sh=0;
Print("countticket_sh=",countticket_sh," wins_shortticket[0]=",wins_shortticket[0],);
....
}
 

AlexeyVik

Программист mql4 mql5
Добрый день не могу решить следующую задачу есть массив (назовем его wins) в нем есть номера тикетов, есть также номера 0 и -100 - так обозначил ненужные тикеты. Как построить динамический массив, назовем его wins_shortticket который будет иметь только хорошие нам номера (т. е массив в котором нет 0 и -100) и имеет нужную размерность
Пробую так, но счетчик countticket_sh убегает и все портится....
Помогите исправить код

start ()
{
....
int countticket_sh=0; // счетчик элементов необходимого массива //wins_shortticket
bool jt;// попробовал ввести, чтобы countticket_sh не убегала

if (wins_shortticket[countticket_sh]==0) jt=true;
for (int jl=0;jl<=ArraySize(wins);jl++)
{
if (wins[jl]!=0)
{
if (wins[jl]!=-100)
{
if (jt==true) countticket_sh++;
ArrayResize(wins_shortticket,countticket_sh);
wins_shortticket[countticket_sh-1]=wins[jl];
jt=false;
if (wins_shortticket[countticket_sh-1]!=0) jt=true;
}
}

}
countticket_sh=0;
Print("countticket_sh=",countticket_sh," wins_shortticket[0]=",wins_shortticket[0],);
....
}
Это задача для того чтобы перебирать только нужные ордера в цикле, для каких-либо манипуляций, а закрытые или не того типа из перебора исключить?

А не проще-ли отсортировать массив и потом в цикле его переписать в другой массив до встречи первого значения 0.
Ну или после сортировки перебирать массив и выполнять нужные действия, а встретив значение 0 завершить цикл.
Существуют и другие простые методы, ведь не обязательно идти таким путём? Если мои предложения не принимаются будем решать ребус завтра.
 

igornt9

Интересующийся
да вроде сам нашел решение

Comment("wins_shortticket[0]=",wins_shortticket[0],"\n","wins_shortticket[1]=",wins_shortticket[1],"\n","wins_shortticket[2]=",wins_shortticket[2],"\n","wins_shortticket[3]=",wins_shortticket[3],"\n","wins_shortticket[4]=",wins_shortticket[4]);
if (count_sellOPEN("sell")==0) {ArrayResize(wins_shortticket,0);}
if(trdistance>0){BBU(trdistance,trlstep);}

countticket_sh=0;
for (int jl=0;jl<ArraySize(wins);jl++)
{
if (wins[jl]!=0)
{
if (wins[jl]!=-100)
{
//if (wins_shortticket[0]!=0 && wins_shortticket[countticket_sh]==0) break;
ArrayResize(wins_shortticket,countticket_sh+1);
wins_shortticket[countticket_sh]=wins[jl];
if (wins_shortticket[countticket_sh]!=0) countticket_sh++;
}
}
Print("countticket_sh=",countticket_sh," wins_shortticket[jl]=",wins_shortticket[jl]);
}

Но если есть замечания, буду рад)
 

AlexeyVik

Программист mql4 mql5
да вроде сам нашел решение

Comment("wins_shortticket[0]=",wins_shortticket[0],"\n","wins_shortticket[1]=",wins_shortticket[1],"\n","wins_shortticket[2]=",wins_shortticket[2],"\n","wins_shortticket[3]=",wins_shortticket[3],"\n","wins_shortticket[4]=",wins_shortticket[4]);
if (count_sellOPEN("sell")==0) {ArrayResize(wins_shortticket,0);}
if(trdistance>0){BBU(trdistance,trlstep);}

countticket_sh=0;
for (int jl=0;jl<ArraySize(wins);jl++)
{
if (wins[jl]!=0)
{
if (wins[jl]!=-100)
{
//if (wins_shortticket[0]!=0 && wins_shortticket[countticket_sh]==0) break;
ArrayResize(wins_shortticket,countticket_sh+1);
wins_shortticket[countticket_sh]=wins[jl];
if (wins_shortticket[countticket_sh]!=0) countticket_sh++;
}
}
Print("countticket_sh=",countticket_sh," wins_shortticket[jl]=",wins_shortticket[jl]);
}

Но если есть замечания, буду рад)
В принципе нормально, за исключением того, что можно поставить одно условие if (wins[jl]!=0 && wins[jl]!=-100) и если ты только-что заполнил элемент массива, то следующей строкой проверять не ноль-ли там... мягко выражаясь нет необходимости.
 

Жека77

Новичок форума
Здрасте всем,потеплело захотелось весны.
Подскажите что хочет зделать мт4 вот что в логе есть
21:52:10 Cannot open file 'D:\InstaTrader\MQL4\indicators\Waddah_Attar_Explosion.ex4' [2]
Заранее спасибо.
 

Alley

Местный житель
Доброго времени всем!!!

Eevviill, помогите пожалуйста разобраться в портфельном тральщике. :disappointed:

Что делаю не так? Вторые сутки подкручиваю, все варианты по инструкции перебрал... В без убыток в 7 пунктов переводит стоп переставляет, а остальные TakeProfit / StopLoss в окне торговли пустые стоят и никак не модифицируются после открытия. И Лосс уже перекрывает указанный и на Профит ни пальцем не шевелит...
:not-good:
Что делать, помогите в настройках и сове разобраться ПЛЗ...
Заранее премного благодарен.

:please::please:
 

Вложения

Последнее редактирование:

eevviill

Заблокирован
Ну то что он хочет его открыть Я понял,ток какой индюк или что даёт команду его открыть?
Советник наверно. Удали всё с графика и по одному присоеденяй. Когда выбъет ошибку то поймёшь изза чего. Или просто в журнале глянь что идёт перед этой ошибкой(ами).

P.S. Беги с Инсты.
 

eevviill

Заблокирован
Доброго времени всем!!!

Eevviill, помогите пожалуйста разобраться в портфельном тральщике. :disappointed:

Что делаю не так? Вторые сутки подкручиваю, все варианты по инструкции перебрал... В без убыток в 7 пунктов переводит стоп переставляет, а остальные TakeProfit / StopLoss в окне торговли пустые стоят и никак не модифицируются после открытия. И Лосс уже перекрывает указанный и на Профит ни пальцем не шевелит...
:not-good:
Что делать, помогите в настройках и сове разобраться ПЛЗ...
Заранее премного благодарен.

:please::please:
Для начала включить их надо.
PHP:
extern bool SetTakeProfit = FALSE;
extern bool SetStoploss = FALSE;
 

ZADEL_21

Активный участник
Здравствуйте!

Вот у этого индикатра есть функция авторефреша, но чаще всего он обновляется только когда рефреш делаешь сам.
Уважаемые программисты, можно ли сделать авторефреш более быстрым?
 

Вложения

korenev

Активный участник
Введите пожалуйста в советник изменяемый параметр типа extern int TimeModify = 30; //кол-во секунд раньше которого запрещено изменять ордер при ModifyOrdersOnEveryBar = true; Если это не сложно.
 

Вложения

Статус
Закрыто для дальнейших ответов.

Отслеживают (859) Посмотреть

Верх