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

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

brilliant8465

Почетный гражданин
Здравствуй eevviill ! помоги пожалуйста в индикаторе ( СДЕЛАТЬ В ЭТОМ Ind4 ZeroLag MACD.mq4 ) сделать отображение валют, примерно как на скрине, а если это не очень сложно то и во всех.:) *hi* :please:
 

Вложения

  • liteforex mt4.png
    liteforex mt4.png
    100,7 КБ · Просмотры: 134
  • Ind4 ZeroLag MACD.rar
    Ind4 ZeroLag MACD.rar
    28,4 КБ · Просмотры: 40

eevviill

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

eevviill

Заблокирован
Здравствуй eevviill ! помоги пожалуйста в индикаторе ( СДЕЛАТЬ В ЭТОМ Ind4 ZeroLag MACD.mq4 ) сделать отображение валют, примерно как на скрине, а если это не очень сложно то и во всех.:) *hi* :please:
Перед return;
PHP:
create(Symbol1_Name,Blue,MACDBuffer1[0]);
create(Symbol2_Name,Red,MACDBuffer2[0]);
create(Symbol3_Name,Green,MACDBuffer3[0]);
create(Symbol4_Name,White,MACDBuffer4[0]);
после return;}
PHP:
void create(string Symb,color col,double data)
{
if(ObjectFind(Symb)==-1)
{
ObjectCreate(Symb,OBJ_LABEL,WindowFind("asd"),0,0);
ObjectSet(Symb,OBJPROP_XDISTANCE,20);
ObjectSet(Symb,OBJPROP_YDISTANCE,20);
ObjectSet(Symb,OBJPROP_COLOR,col);
}
ObjectSetText(Symb,Symb+"="+DoubleToStr(data,4),12);
}
и после int Init(){
PHP:
IndicatorShortName("asd");
 
Последнее редактирование:

Egorushka1974

Местный житель
Мэтр eevviill, не откажите в любезности посмотреть вот этот тестерный грааль, только сильно не смейтесь, я его маленько поковырял на предмет вынесения настроек наружу.
1. Возможно ли сделать чтобы он входил в рынок не отложками, а рыночными ордерами.
2. Посмотрите, правильно ли я понял назначение параметров которые вынес в настройки.
3. Кастрировать лот, а то такие бабахает, мама не горюй.
С уважением и заранее спасибо.
 

Вложения

eevviill

Заблокирован
Мэтр eevviill, не откажите в любезности посмотреть вот этот тестерный грааль, только сильно не смейтесь, я его маленько поковырял на предмет вынесения настроек наружу.
1. Возможно ли сделать чтобы он входил в рынок не отложками, а рыночными ордерами.
2. Посмотрите, правильно ли я понял назначение параметров которые вынес в настройки.
3. Кастрировать лот, а то такие бабахает, мама не горюй.
С уважением и заранее спасибо.
1)Он входит рыночными.
2)Не правильно. Это уровни стоплевела.(мин растояние стопов от цены).
3)Вместо (2 екз) f0_4() ставь Lot и потом сначала extern double Lot=0.1;
 

korenev

Активный участник
А 30 сек от чего отталкиватся должны? От прошлого времени модифицирования?

Там не 30 секунд, а любое число в секундах . И отталкиваться от открытия ордера и далее от предыдущей последней модификации этого ордера. Ну то есть если например 20 секунд стоит, то раньше чем через эти 20 секунд модификации не должны быть друг от друга . И в этом случае сейчас модификация , а следующая не раньше чем через 20 секунд . И должна быть возможность эту цифру ( 20 ) изменять в окошечке на лицевой панели.
И д. б. трехразрядной, чтобы можно было установить например 130 секунд.
 
Последнее редактирование:

brilliant8465

Почетный гражданин
eevviill ! где я не прав??? вообще не отображается!!!
 

Вложения

  • Безымянный01.jpg
    Безымянный01.jpg
    184,7 КБ · Просмотры: 21
  • Безымянный02.jpg
    Безымянный02.jpg
    147,2 КБ · Просмотры: 18

Egorushka1974

Местный житель
1)Он входит рыночными.
2)Не правильно. Это уровни стоплевела.(мин растояние стопов от цены).
3)Вместо (2 екз) f0_4() ставь Lot и потом сначала extern double Lot=0.1;

Не совсем понял с третьим пунктом, ткните пальцем пожалуйста. Спасибо большое.:)
 

Egorushka1974

Местный житель
1)Он входит рыночными.
2)Не правильно. Это уровни стоплевела.(мин растояние стопов от цены).
3)Вместо (2 екз) f0_4() ставь Lot и потом сначала extern double Lot=0.1;

я вот так сделал, при компиляции ошибок не дал, правильно?

double f0_4() {
int digits_0 = MarketInfo(OrderSymbol(), MODE_DIGITS);
double minlot_4 = MarketInfo(Symbol(), MODE_MINLOT);
double maxlot_12 = MarketInfo(Symbol(), MODE_MAXLOT);
double leverage_20 = AccountLeverage();
double lotsize_28 = Lots;
double Ld_ret_36 = MathMin(maxlot_12, MathMax(minlot_4, Lots));
if (Gi_116 && Gi_120 > 0.0 && AccountFreeMargin() > Ask * Ld_ret_36 * lotsize_28 / leverage_20) Ld_ret_36 = NormalizeDouble(AccountFreeMargin() * Gi_120 / lotsize_28, digits_0);
else Ld_ret_36 = minlot_4;
Ld_ret_36 = MathMax(minlot_4, MathMin(maxlot_12, NormalizeDouble(Ld_ret_36 / minlot_4, 0) * minlot_4));
if (Ld_ret_36 > Gd_108) Ld_ret_36 = Gd_108;
return (Ld_ret_36);
 

dadik

Местный знаток
Подправьте пожалосто под новый билд...при компиляции перестаёт показывать. За ранее спасибо.
 

Вложения

eevviill

Заблокирован
eevviill ! где я не прав??? вообще не отображается!!!
PHP:
create(Symbol1_Name,Blue,MACDBuffer1[0],20,10);
create(Symbol2_Name,Red,MACDBuffer2[0],20,25);
create(Symbol3_Name,Green,MACDBuffer3[0],20,40);
create(Symbol4_Name,White,MACDBuffer4[0],20,55); 
//--------------------------------------------------------------------
   return;                          
  }
//--------------------------------------------------------------------
void create(string Symb,color col,double data,int X,int Y)
{
if(ObjectFind(Symb)==-1)
{
ObjectCreate(Symb,OBJ_LABEL,WindowFind("asd"),0,0);
ObjectSet(Symb,OBJPROP_XDISTANCE,X);
ObjectSet(Symb,OBJPROP_YDISTANCE,Y);
ObjectSet(Symb,OBJPROP_CORNER,1);
ObjectSet(Symb,OBJPROP_COLOR,col);
}
ObjectSetText(Symb,Symb+"="+DoubleToStr(data,4),10);
}
 

eevviill

Заблокирован
Подправьте пожалосто под новый билд...при компиляции перестаёт показывать. За ранее спасибо.
Работает. Но можешь попробовать здесь 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));
 

eevviill

Заблокирован
Там не 30 секунд, а любое число в секундах . И отталкиваться от открытия ордера и далее от предыдущей последней модификации этого ордера. Ну то есть если например 20 секунд стоит, то раньше чем через эти 20 секунд модификации не должны быть друг от друга . И в этом случае сейчас модификация , а следующая не раньше чем через 20 секунд . И должна быть возможность эту цифру ( 20 ) изменять в окошечке на лицевой панели.
И д. б. трехразрядной, чтобы можно было установить например 130 секунд.
.
 

Вложения

Жека77

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

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

Что хотело открыть нашёл прибил.
Если не секрет почему бежать с Инсты?
Р.S. можно в личку дабы не кого не затронуть.
 

digaysasha

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

Вложения

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

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

Верх