Здравствуйте, Андрей!
1. По возможности, прошу заменить индикатор TrendWave в Вашем советнике «Усреднитель на индикаторе TrendWave»
www.opentraders.ru/downloads/3286/ на индикатор
ma_bbands.
Красные стрелки — сигнал на продажу. Синие — на покупку.
2. В советник прописать настройки индикатора:
MoveShift 12
MAPeriod 9
OsMA 3
Dist2 20
Std 0.4
ВPeriod 20
Наполнение советника оставить прежним,
Но:
3. по обратному сигналу индикатора,
добавить возможность
закрытия ордеров
предыдущего направления.
4. В случае закрытия ордера (серии ордеров) по тейк профиту (тралу)
и наличии прежнего сигнала индикатора – тут же, не дожидаясь закрытия бара, снова открыть ордер в этом направлении до закрытия по Тейк профиту или при смене сигнала на противоположный.
ma_bbands.mq4 (8 Kb)
Комментарии (24)
35 AM2 Сообщений: 16453 - Андрей
11 Felice Автор Сообщений: 44
35 AM2 Сообщений: 16453 - Андрей
11 Felice Автор Сообщений: 44
За сегодня на демо на Н1 не открыл ни одного ордера. Хотя в тестере из четырёх сигналов всё же один ордер бай выставился. EUR-USD
Прошу помощи!
Редактирован: 6 июля 2022, 23:16
11 Felice Автор Сообщений: 44
11 Felice Автор Сообщений: 44
советник это машина, если есть сигнал от индикатора, есть сделка
35 AM2 Сообщений: 16453 - Андрей
… Вчера пропущенные сигналы на селл. сегодня пропущен сигнал на бай…
11 Felice Автор Сообщений: 44
8 vadimltd Сообщений: 192 - Вадим
11 Felice Автор Сообщений: 44
11 Felice Автор Сообщений: 44
Пожалуйста, добавьте вариант расчёта лота в % от депозита (Risk).
11 Felice Автор Сообщений: 44
Ранее озвученное выставление ордеров по запоздалым сигналам не делайте.
11 Felice Автор Сообщений: 44
11 Felice Автор Сообщений: 44
Редактирован: 13 июля 2022, 19:07
16 ssg Сообщений: 817
//--- Inputs
extern double Lots = 0.1; // лот
extern double Risk = 1; // риск
.
.
.
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
{
int r=0;
color clr=Green;
double sl=0,tp=0;
datetime expiration=0;
if(type==1 || type==3 || type==5)
{
clr=Red;
if(StopLoss>0)
sl=NormalizeDouble(price+StopLoss*_Point,_Digits);
if(TakeProfit>0)
tp=NormalizeDouble(price-TakeProfit*_Point,_Digits);
}
if(type==0 || type==2 || type==4)
{
clr=Blue;
if(StopLoss>0)
sl=NormalizeDouble(price-StopLoss*_Point,_Digits);
if(TakeProfit>0)
tp=NormalizeDouble(price+TakeProfit*_Point,_Digits);
}
r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,_Digits),Slip,sl,tp,Comm,Magic,0,clr);
return;
}
double Lot()
{
double lot=Lots;
if(Risk>0)
lot=NormalizeDouble(AccountEquity()*Risk/100000,2);
return(lot);
}
//+------------------------------------------------------------------+
11 Felice Автор Сообщений: 44
16 ssg Сообщений: 817
//+------------------------------------------------------------------+
//| MABands.mq4 |
//| Copyright 2022, AM2 |
//| www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright «Copyright 2022, AM2»
#property link «www.forexsystems.biz»
#property version «1.00»
#property strict
//--- Inputs
extern double Lots = 0.1; // лот
extern double Risk = 1; // риск
extern double KLot = 2; // умножение лота
extern double MaxLot = 5; // максимальный лот
extern int StopLoss = 2000; // лось
extern int TakeProfit = 3000; // язь
extern int Profit = 30; // язь в валюте
extern int BuyProfit = 30; // язь в валюте на бай
extern int SellProfit = 30; // язь в валюте на селл
extern int BULevel = 0; // уровень БУ
extern int BU_Point = 30; // пункты БУ
extern int TrailingStop = 0; // трал
extern int StartHour = 0; // час начала торговли
extern int StartMin = 30; // минута начала торговли
extern int EndHour = 23; // час окончания торговли
extern int EndMin = 30; // минута окончания торговли
extern int CloseSig = 1; // закрытие по сигналу
extern int Shift = 1; // бар индикатора
extern int Slip = 30; // проскальзывание цены
extern int Reverce = 0; // 1-реверс
extern int Magic = 123; // магик
extern string IndName = «ma_bbands»;
extern int MoveShift = 12;
extern int MAPeriod = 9;
extern int OsMA = 3;
extern int Dist2 = 20;
extern double Std = 0.4; //0.5
extern int BPeriod = 20;
datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
if(!IsTradeAllowed())
Alert(«Для нормальной работы советника необходимо\n»+
«Разрешить советнику торговать»);
if(!IsLibrariesAllowed())
Alert(«Для нормальной работы советника необходимо\n»+
«Разрешить импорт из внешних библиотек»);
if(!IsExpertEnabled())
Alert(«Отжата кнопка \»Разрешить запуск советников\"");
Comment("");
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Comment("");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
{
int r=0;
color clr=Green;
double sl=0,tp=0;
datetime expiration=0;
if(type==1 || type==3 || type==5)
{
clr=Red;
if(StopLoss>0)
sl=NormalizeDouble(price+StopLoss*_Point,_Digits);
if(TakeProfit>0)
tp=NormalizeDouble(price-TakeProfit*_Point,_Digits);
}
if(type==0 || type==2 || type==4)
{
clr=Blue;
if(StopLoss>0)
sl=NormalizeDouble(price-StopLoss*_Point,_Digits);
if(TakeProfit>0)
tp=NormalizeDouble(price+TakeProfit*_Point,_Digits);
}
r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,_Digits),Slip,sl,tp,Comm,Magic,0,clr);
return;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double Lot()
{
double lot=Lots;
if(Risk>0)
lot=NormalizeDouble(AccountEquity()*Risk/100000,2);
return(lot);
}
//+------------------------------------------------------------------+
11 Felice Автор Сообщений: 44
11 Felice Автор Сообщений: 44
16 ssg Сообщений: 817
11 Felice Автор Сообщений: 44
Есть ошибка-переведите текст-устраните причину.
В данном случае: советник нашёл не объявленный параметр -Comm.
Это значит, что в коде есть что-то, что редактор не знает что это такое, не может его ни с чем сопоставить, сравнить.
Не знаете если что это такое — посмотрите структуру функции OrderSend(...) лучше в учебнике или хотя бы в другом советнике, что это за параметр.
В структуре этой функции на этом месте стоит параметр — комментарии ордера.
Этот параметр можно записать как:
— просто не заполненные "",
— заполненные «бла-бла»,
— просто объявленным заранее текстом например:
extern string Comm = «Felice »;// коммент
Выбирайте любой из вариантов.
Уверен, что всё это вы знаете.Просто поторопились расписаться в беспомощности из-за не внимательности.
16 ssg Сообщений: 817
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий