[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 24

 
WindSW:

Через Print

Попробуйте такую конструкцию

double xDelH[1][1];
double HBar[1][1];

int countDH=0;
HBar[countH][0]=1.23456;

xDelH[countDH][0]=HBar[countH][0];

Print("HBar=",DoubleToStr(HBar[countH][0],3),"  xDelH=",DoubleToStr(xDelH[countDH][0],4));
// распечатается: HBar=1.234  xDelH=1.2345

Посмотрите потом как у вас всё это происходит.

 
Dimka-novitsek:
Да, спасибо!! Это я с улицы сразу за комп и что-то совсем попутал!

Дмитрий! Тебе пару советов в копилку. Сначала код (попытайся уловить разницу):

//---- Константы
#define MAGIC 450
//---- Внешние переменные советника
extern int StopLoss   = 25;
extern int TakeProfit = 30;
//---- Глобальные переменные
double gd_TP, gd_SL;
int init()
{
    gd_TP = TakeProfit * Point;
    gd_SL = StopLoss * Point;
}
//---- Здесь какая-то пользовательская функция или start()
    if (Svetsja_1) if (!Svetsja_2) if (!Svetsja_3) if (!Orderbuy)
    {
        //стоп лосс 25 п. профит 30 п;стоп лосс 25 п. тралится по MA 20    
        double ld_TP, ld_SL;
        RefreshRates();
        if (TakeProfit != 0.0) ld_TP = NormalizeDouble (Bid + gd_TP);
        if (StopLoss != 0.0) ld_SL = NormalizeDouble (Bid - gd_SL);
        int li_Ticket = OrderSend (Symbol(), OP_BUY, lot, NormalizeDouble (Ask, Digits), 5, ld_SL, ld_TP, NULL, MAGIC, 0, CLR_NONE);
        if (li_Ticket > 0)
        {  
            Sleep (2000); RefreshRates(); 
            li_Ticket = OrderSend (Symbol(), OP_BUY, lot, NormalizeDouble (Ask, Digits), 5, ld_SL, ld_TP, NULL, MAGIC, 0, CLR_NONE);
            if (li_Ticket > 0) Orderbuy = 1;
            else
            {
                Error = GetLastError();
                string errorcomment = "Ошибка открытия ордера OP_BUY" + " " + Symbol() + " " + ErrorDescript (Error); 
                Print (errorcomment);
            }
        }
    }

Что заметил по-другому? - перечисли, а я, затем, сформулирую советы (если, конечно, тебе интересно). ;)

 
Спасибо большое!!!!!!!  Я обновил страницу, и увидел.  Скоро брат прийдет, я позже отпишусь.
 
Подскажите что значит ошибка советника   GBPUSD,H1: zero divide
 
Frostr:
Подскажите что значит ошибка советника   GBPUSD,H1: zero divide


Деление на нуль.
 
Frostr:
Подскажите что значит ошибка советника   GBPUSD,H1: zero divide


Особенно если в тестере пытаетесь использовать значения с других графиков. Т.е. к примеру тестируете советник на EURUSD, а данные с индикатора пытаетесь взять с како-нить другого графика...
 

Что-то не врубаюсь, в чём прикол - ранее такого небыло. Вызываю функцией iCustom() показания индикатора и в результате мне советник пишет, что не может открыть файл индикатора. 

 

Вот код, который я использовал, и который всегда срабатывал:

 

#property show_inputs
// ------------- Пользовательские переменные ------------------------
extern string   с1=" -------- Rad Has -------------";
extern string   IndiRadHas_Name="Rad_Has";
extern int                      MaMetod  = 2;
extern int                      MaPeriod = 6;
extern int                      MaMetod2  = 3;
extern int                      MaPeriod2 = 2;

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start(){
  // -------------- Пользовательские переменные -------------------
        string  SMB=Symbol();

        Alert("======================================");
        // --------------- инициализируем значения индикатора RadHas -----------------------------------
                double RadHas_0_1=iCustom(SMB,0,IndiRadHas_Name,MaMetod,MaPeriod,MaMetod2,MaPeriod2,0,1);
                double RadHas_1_1=iCustom(SMB,0,IndiRadHas_Name,MaMetod,MaPeriod,MaMetod2,MaPeriod2,1,1);
                double RadHas_2_1=iCustom(SMB,0,IndiRadHas_Name,MaMetod,MaPeriod,MaMetod2,MaPeriod2,2,1);
                double RadHas_3_1=iCustom(SMB,0,IndiRadHas_Name,MaMetod,MaPeriod,MaMetod2,MaPeriod2,3,1);
                //RadHas_0_1=NormalizeDouble(RadHas_0_1,Digits);
                //RadHas_1_1=NormalizeDouble(RadHas_1_1,Digits);
                //RadHas_2_1=NormalizeDouble(RadHas_2_1,Digits);
                //RadHas_3_1=NormalizeDouble(RadHas_3_1,Digits);
        Alert("RadHas_0_1 = ",RadHas_0_1);
        Alert("RadHas_1_1 = ",RadHas_1_1);
        Alert("RadHas_2_1 = ",RadHas_2_1);
        Alert("RadHas_3_1 = ",RadHas_3_1);
        Alert("============== Скрипт 0 на паре ",SMB," ==============");
return(0);

}
//+------------------------------------------------------------------+
Индикатор к посту приложен. Как думаете, почему не открывается файл индикатора?
Файлы:
rads_has.mq4  6 kb
 
Забыл сказать, билд терминала - 445
 
drknn:
Забыл сказать, билд терминала - 445

А вызовы внешних экспертов в настройках разрешены?
 
rigonich:

А вызовы внешних экспертов в настройках разрешены?

7 лет уже программирую для форекса. Такую грубую ошибку проморгал бы вряд ли. Да Вы сами-то попробуйте у себя в терминале вызвать показания индикатора данным скриптом.

Дело всё в том, что год назад я именно этого индюка вызывал скриптом и всё было нормально. Вызывал то так же само как и сейчас. 

Причина обращения: