Андрей, посмотри свой код множителя лота. У тебя там ошибка. Ты возводишь в степень, а нужно перемножать…
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double Lot()
{
double lot=Lots;
lot=NormalizeDouble(Lots+PLot*(CountTrades()),2);
if(lot>MaxLot)lot=Lots;
return(lot);
}
По безубытоку — безубыток не работает, если он сработал бы, то и на вашем скрине стоп лос перетянулся бы до точки входа, а не ждал бы пока сделка закроется по тейк профиту.
при любый настройках,
функция (LineValue =0.25; ) не активна при любых других значениях! а работает только при значении = 0,9
нужно чтобы все атр месяцев прошлого года слаживались
он считает атр за 12 месяцев именно прошлого года?
2) что значит сшифт 4 сверху? и как эту цифру можно изменить?
//+------------------------------------------------------------------+
//| ATRGod.mq4 |
//| Copyright 2018, AM2 |
//| http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2"
#property link "http://www.forexsyatems.biz"
#property version "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Горизонтальная линия |
//+------------------------------------------------------------------+
void PutHLine(string name,double p,color clr)
{
ObjectDelete(0,name);
ObjectCreate(0,name,OBJ_HLINE,0,0,p);
//--- установим цвет линии
ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим толщину линии
ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
int shift=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-1))));
int atr=0;
double lo=iLow(NULL,PERIOD_MN1,iLowest(NULL,PERIOD_MN1,MODE_LOW,12,shift));
double hi=iHigh(NULL,PERIOD_MN1,iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,shift));
for(int i=shift;i<12;i++)
{
atr+=(int)((iHigh(NULL,PERIOD_MN1,i)-iLow(NULL,PERIOD_MN1,i))/_Point);
}
PutHLine("UP",hi,Red);
PutHLine("DN",lo,Red);
Comment("\n ATR: ",atr/12,
"\n High: ",hi,
"\n Low: ",lo);
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
Скажите пожалуйста в каком параметре реализована следующая функция
2. Разрешить/отключить открытие дополнительных новых сделок в каждом новом дне
extern bool One = 0; // true-1 поза в день
AM2