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

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

dadik

Местный знаток
Работает. Но можешь попробовать здесь 6 экземпляров NumBars заменить на NumBa
PHP:
// Market Value Added function
double MVA(int NumBars, int CBar){
   double sum, floatingAxis;
   for(int k = CBar; k < NumBars + CBar; k++){
      sum+=((High[k] + Low[k]) / 2.0);
   }
   floatingAxis =( sum / NumBars);
   return(floatingAxis);
}

// Average True Range Function
double ATR(int NumBars, int CBar){
   double sum, volitilityUnit;
   for(int k = CBar; k < NumBars + CBar; k++){
      sum += (High[k] - Low[k]);
   }
   volitilityUnit = (0.2 * (sum / NumBars));
историю баров невидно...может тут что то....double MVACall , ATRCall; про ето пишет- variable not used.
 

Alley

Местный житель
Для начала включить их надо.
PHP:
extern bool SetTakeProfit = FALSE;
extern bool SetStoploss = FALSE;

Eevviill, так это булевые переменные прописанные по умолчанию во внешних настройках (дефолт)...
А я Вам сет еще давал, который и не открывали. Все сделал как в описании в инструкции настроек.

Все равно не работает.
По моему сету сов только без убыток в +7пп переводит и все!
Почему только это. Почему модификации ордеров по полным стопам (СЛ /ТП) не включаются??!


o_oo_oоО
 

eevviill

Заблокирован
Eevviill, так это булевые переменные прописанные по умолчанию во внешних настройках (дефолт)...
А я Вам сет еще давал, который и не открывали. Все сделал как в описании в инструкции настроек.

Все равно не работает.
По моему сету сов только без убыток в +7пп переводит и все!
Почему только это. Почему модификации ордеров по полным стопам (СЛ /ТП) не включаются??!


o_oo_oоО
Не грузи.
1) Переменный включены/
2) Если да то скинь ещё раз сов.
 

Alley

Местный житель
Не грузи.
1) Переменный включены/
2) Если да то скинь ещё раз сов.

1) Включены в сете уже мной.
2) В смысле скинуть бот???

Вот ссыль, где выкладывал: _http://forexsystemsru.com/yazyk-programmirovaniya-mql4/61956-dorabotka-botov-sovetnikov-indikatorov-427.html пост 8538
 

gek

Элитный участник
Советник 33_serebrom запускается, выставляет отложки. Но вот сегодня ночью один из рыночных ордеров закрылся по stoploss величиной 6 пунктов, хотя по настройкам stoploss был установлен 23 . Не подскажете в чем дело ? Трал был false, причем оба, т.е. настройки ModifyOrdersOnEveryBar = true;
UseTrailing = false; ProfitTrailing = false; AllowDeleteOppositeOrders = true;

Раскажи пожалуйста про этого советника.Какой тайм,пара и т.д.
Хотелось бы попробовать.Спасибо.
 

eevviill

Заблокирован
1) Включены в сете уже мной.
2) В смысле скинуть бот???

Вот ссыль, где выкладывал: _http://forexsystemsru.com/yazyk-programmirovaniya-mql4/61956-dorabotka-botov-sovetnikov-indikatorov-427.html пост 8538
Обрати внимание ещё на эти настрокий. Я чуть подправил. Если не работает то я не могу помочь.
PHP:
extern bool Allow_All_Types = FALSE;
extern bool Buy_Active = FALSE;
extern bool Sell_Active = FALSE;
extern bool Buy_Stop = FALSE;
extern bool Sell_Stop = FALSE;
extern bool Buy_Limit = FALSE;
extern bool Sell_Limit = FALSE;
 

Вложения

mezik777

Активный участник
Здравствуйте! Кто сможет помочь?, илан открывающий серию после сигнала фильтра (пересечение RSI_Period и SlowPeriod) нужно заставить открывать лишь одну сделку(за исключением ордеров множителя мартина в случае если сделка пошла в убыток) вплоть до следующего сигнала RSI_Period и SlowPeriod. Спасибо!
 

Вложения

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

korenev

Активный участник
Уважаемый eevviill ! Спасибо за доработку советника 33_serebrom_NEW_last(e). В тестере работает, на реале проверю в понедельник. Вопрос по доработке и этому советнику следующий: на скриншоне, который я прилагаю ниже , тестер показывает за месяц профит 4169.14 при 25 сделках и Т.P. равном 10.Если даже принять, что все до одной сделки профитные, то есть 25 сделок умножаем на 10 пунктов т.p. и получаем 250 пунктов профита всего в месяц. Если учесть, что у нас lots=0.3 то эти 4169.14 профита никак не получается. Где ошибка- в моих расчетах, в программе или в тестере ? Подскажите пожалуйста, будьте так добры. Здесь DistanceSet = 15; Билд 509 Можете проверить сами. UseTrailing = false; и ProfitTrailing = false; Может он все же тралит, независимо от настроек ?
 

Вложения

  • 9.png
    9.png
    152,9 КБ · Просмотры: 45
Последнее редактирование:

eevviill

Заблокирован
Уважаемый eevviill ! Спасибо за доработку советника 33_serebrom_NEW_last(e). В тестере работает, на реале проверю в понедельник. Вопрос по доработке и этому советнику следующий: на скриншоне, который я прилагаю ниже , тестер показывает за месяц профит 4169.14 при 25 сделках и Т.P. равном 10.Если даже принять, что все до одной сделки профитные, то есть 25 сделок умножаем на 10 пунктов т.p. и получаем 250 пунктов профита всего в месяц. Если учесть, что у нас lots=0.3 то эти 4169.14 профита никак не получается. Где ошибка- в моих расчетах, в программе или в тестере ? Подскажите пожалуйста, будьте так добры. Здесь DistanceSet = 15; Билд 509 Можете проверить сами. UseTrailing = false; и ProfitTrailing = false; Может он все же тралит, независимо от настроек ?
Ну ты прикалист. Открой вкладку тестера резульаты и там будет всё видно.
 

eevviill

Заблокирован
Здравствуйте! Кто сможет помочь?, илан открывающий серию после сигнала фильтра (пересечение RSI_Period и SlowPeriod) нужно заставить открывать лишь одну сделку(за исключением ордеров множителя мартина в случае если сделка пошла в убыток) вплоть до следующего сигнала RSI_Period и SlowPeriod. Спасибо!
Тут
PHP:
Long_Position && orders_buy==0
должно быть так
PHP:
Long_Position && orders_buy==0 && orders_sell==0

тут
PHP:
Short_Position && orders_sell==0
так
PHP:
Short_Position && orders_sell==0 && orders_buy==0
 

abuuuuuu

Местный знаток
советник должен открыть одновременно 2 ордера бай\селл тп 10 сл 5 если сработает тп(бай) то открывает бай тп 10 сл 5 если сл(бай) то селл тп 10 сл 5 и т.д. правильно ли я сделал ?
вот код

//+------------------------------------------------------------------+
//| buy-sell.mq4 |
//| Copyright 2014, MetaQuotes Software Corp. |
//| MetaTrader 5 Trading Platform / MetaQuotes Software Corp. |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

extern int TakeProfit = 10;
extern int StopLoss = 5;
extern double Lots = 0.1;
extern int Slippage = 0;
extern int Magic = 123;
extern string comment = "profit";

double SlBuy, TpBuy, SlSell, TpSell, cttm, ctm, mttc, mtc;
int ticket;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if(Digits == 3 || Digits == 5)
TakeProfit *= 10;
StopLoss *= 10;
Slippage *= 10;
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
{
SlBuy = NormalizeDouble(Bid - StopLoss * Point, Digits);
TpBuy = NormalizeDouble(Ask + TakeProfit * Point,Digits);
SlSell = NormalizeDouble(Ask + StopLoss * Point, Digits);
TpSell = NormalizeDouble(Bid - TakeProfit * Point, Digits);
if (CountBuy() == 0)
{
RefreshRates();
ticket = OrderSend(Symbol(), OP_BUY, Lots, NormalizeDouble(Ask, Digits), Slippage, SlBuy, TpBuy, comment, Magic, 0, Blue);
}
if(OrderSelect(ticket, SELECT_BY_POS, MODE_HISTORY) == true)
{
ctm = OrderClosePrice();
if(ctm == TpBuy)
{
RefreshRates();
OrderSend(Symbol(), OP_BUY, Lots, ctm, Slippage, SlBuy, TpBuy, comment, Magic, 0, Blue);
}
}
if(OrderSelect(ticket, SELECT_BY_POS, MODE_HISTORY) == true)
{
mtc = OrderClosePrice();
if(mtc == SlBuy)
{
RefreshRates();
OrderSend(Symbol(), OP_SELL, Lots * 2, mtc, Slippage, SlSell, TpSell, comment, Magic, 0, Red);
}
}
}
{
SlBuy = NormalizeDouble(Bid - StopLoss * Point, Digits);
TpBuy = NormalizeDouble(Ask + TakeProfit * Point,Digits);
SlSell = NormalizeDouble(Ask + StopLoss * Point, Digits);
TpSell = NormalizeDouble(Bid - TakeProfit * Point, Digits);
if (CountSell() == 0)
{
RefreshRates();
ticket = OrderSend(Symbol(), OP_SELL, Lots, NormalizeDouble(Bid, Digits), Slippage, SlSell, TpSell, comment, Magic, 0, Red);
}
if(OrderSelect(ticket, SELECT_BY_POS, MODE_HISTORY) == true)
{
cttm = OrderClosePrice();
if(cttm == TpSell)
{
RefreshRates();
OrderSend(Symbol(), OP_SELL, Lots, cttm, Slippage, SlSell, TpSell, comment, Magic, 0, Red);
}
}
if(OrderSelect(ticket, SELECT_BY_POS, MODE_HISTORY) == true)
{
mttc = OrderClosePrice();
if(mttc == SlSell)
{
RefreshRates();
OrderSend(Symbol(), OP_BUY, Lots * 2, mttc, Slippage, SlBuy, TpBuy, comment, Magic, 0, Blue);
}
}
}
return(0);

}
//+------------------------------------------------------------------+
int CountSell()
{
int count = 0;
for(int trade = OrdersTotal()-1; trade >= 0; trade--)
{
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(OrderType() == OP_SELL)
count++;
}
}

return(count);
}
//+------------------------------------------------------------------+
int CountBuy()
{
int count = 0;
for(int trade = OrdersTotal()-1; trade >= 0; trade--)
{
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(OrderType() == OP_BUY)
count++;
}
}

return(count);
}
//+------------------------------------------------------------------+
 

bornikol

Гуру форума
Помогите усовершенствовать индикатор TDI

Здравствуйте eevviill ! Помогите пожалуйста! В индикаторе TDI нужно сделать чтобы он обновлялся автоматически через устанавливаемое время в секундах.
Что бы я сам мог во "Входных параметрах" подобрать периоды обновления.
 

Вложения

  • TDI.ex4
    TDI.ex4
    6,4 КБ · Просмотры: 22
  • TDI.mq4
    TDI.mq4
    8,6 КБ · Просмотры: 39
Статус
Закрыто для дальнейших ответов.

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

Верх