[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 24

 
WindSW:

Tramite stampa

Prova questo design

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

Vedi come funziona per te.

 
Dimka-novitsek:
Sì, grazie!!! Sono stato quello che è venuto direttamente dalla strada al computer e ha ottenuto qualcosa di completamente confuso!

Dimitri, un paio di consigli per te. Prima il codice (cerca di cogliere la differenza):

//---- Константы
#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);
            }
        }
    }

Cosa ha notato di diverso? - Elenca, e poi formulerò dei consigli (se ti interessa, ovviamente). ;)

 
Grazie mille!!!!!!! Ho aggiornato la pagina e l'ho visto. Mio fratello sarà presto qui, riferirò più tardi.
 
Si prega di consigliare qual è l'errore del GBPUSD,H1: zero divide
 
Frostr:
Si prega di consigliare qual è l'errore del GBPUSD,H1: zero divide


Divisione per zero.
 
Frostr:
Si prega di consigliare qual è l'errore del GBPUSD,H1: zero divide


Soprattutto se nel tester stai cercando di usare valori di altri grafici. Per esempio, se testate l'Expert Advisor su EURUSD, ma cercate di prendere i dati dell'indicatore da qualche altro grafico...
 

Non capisco cosa c'è che non va - questo non è mai successo prima. Chiamo iCustom() per la lettura dell'indicatore e come risultato il mio Expert Advisor scrive che non può aprire il file dell'indicatore.

Ecco il codice che ho usato, che ha sempre funzionato:

#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);

}
//+------------------------------------------------------------------+
L'indicatore è attaccato al palo. Perché pensi che il file indicatore non si apra?
File:
rads_has.mq4  6 kb
 
Ho dimenticato di dirvi che la costruzione del terminale è 445
 
drknn:
Ho dimenticato di dirvi che la costruzione del terminale è 445

Le chiamate a esperti esterni sono permesse nelle impostazioni?
 
rigonich:

Le chiamate di esperti esterni sono permesse nelle impostazioni?

Sono sette anni che programmo per il forex. Difficilmente mi sarebbe sfuggito un errore così grossolano. Provate a chiamare le letture dell'indicatore con questo script nel vostro terminale.

Il fatto è che un anno fa ho chiamato questo particolare indicatore con uno script e tutto andava bene. L'ho chiamato nello stesso modo in cui lo faccio ora.