[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 422

 
Können Sie mir sagen, ob das for innerhalb der for(s) funktioniert?
 
elmucon:
Können Sie mir sagen, ob das for innerhalb der for(s) funktioniert?
Es funktioniert. Auch alle anderen Betreiber arbeiten.
 
Zhunko:
Es funktioniert. Auch alle anderen Betreiber arbeiten.

Ich danke Ihnen!
 
Guten Tag, bitte stellen Sie ein Codefragment für einen Expert Advisor zur Verfügung, der ein Indikatorsignal für den Einstieg verwendet, das Pfeile statt einer Linie bildet (d.h. der Indikatorstil ist als SetIndexStyle(0, DRAW_ARROW, EMPTY, 3) definiert). Ich möchte, dass der Pfeil nach unten für Verkauf und der Pfeil nach oben für Kauf steht. Ich bin aus irgendeinem Grund mit den Standardmethoden gescheitert(
 

Können Sie mir sagen, wie ich die rsi-Periode ändern kann (Standard ist 14)?

Dankeschön


//+------------------------------------------------------------------+
//|                                                  RSI_to_File.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.ru/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.ru/"

#property show_inputs
string SymbolsArray[11]={"","USDCHF","GBPUSD","EURUSD","USDJPY","CHFJPY","EURGBP","EURCHF","EURJPY","GBPJPY","GBPCHF"};

//+------------------------------------------------------------------+
//| string SymbolByNumber                                   |
//+------------------------------------------------------------------+
string GetSymbolString(int Number)
  {
//----
   string res="";
   res=SymbolsArray[Number];   
//----
   return(res);
  }

//+------------------------------------------------------------------+
//| возвращает период                                                |
//+------------------------------------------------------------------+
int PeriodNumber(int number)
   {
   int per_min;
   switch (number)
      {
     
      case 5: per_min=PERIOD_H4;break;
      default: per_min=PERIOD_D1;break;
      }
   return(per_min);   
   }

//+------------------------------------------------------------------+
//|   выводит в файл котировки + значения индикатора                 |
//+------------------------------------------------------------------+
void RSI_output(string SymbolName,int PeriodMinutes)
   {
   int size=iBars(SymbolName,PeriodMinutes);
//----
   if (size==0) return;
   int handle=FileOpen(SymbolName+PeriodMinutes+"_RSI.csv",FILE_WRITE|FILE_CSV);
   if (handle<0) return;
   FileWrite(handle,"Time;RSI");
   for (int i=size-1;i>=0;i--)
      {
      FileWrite(handle,TimeToStr(iTime(SymbolName,PeriodMinutes,i))
         ,iCustom(SymbolName,PeriodMinutes,"RSI",0,i));
      }
   FileClose(handle);      
//----
   return;
   }
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
  int SymbolCounter,PeriodCounter; 
//----
   for (SymbolCounter=1;SymbolCounter<13;SymbolCounter++)
      {
      for (PeriodCounter=2;PeriodCounter<=6;PeriodCounter++)
         {
         //Print("NewBar on ",GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"M");
         RSI_output(GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter));
         }
      }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

 

Leute, könnt ihr mir den Weg zur Registrierung zeigen, damit ich OPLI online nutzen kann und meinen Benutzernamen und mein Passwort bekomme?

 
Sehen Sie, ich habe die Zeit durch die Funktion
ObjectGet("qwerty",OBJPROP_TIME2);
Ich erhalte 1323452400. Wie ich verstehe, ist die Zeit in Sekunden, so dass, wenn ich subtrahieren 600 von dieser Zeit, die neue Position wird 10 Bars zurück auf dem 5-Minuten-Diagramm, aber in der Tat die neue Koordinate hat nur 1 Bar verschoben, warum ist dies geschehen? Und damit die Verschiebung 10 Takte beträgt, muss man etwa 3000 abziehen, wo ist hier die Logik?
 

Können Sie mir sagen, warum ich keine Variablen drucken kann, nicht einmal 0 erscheint.

Der Lotse der angesehenen voix_kas. Von mir geringfügig überarbeitet.

double GetLot(int FastPeriodMA,int SlowPeriodMA) {
int i;
static double Lot = 0;
static double PrevBalance = 0;
static double BalanceOld[0];
static double BalanceNew[0];
if (NormalizeDouble(PrevBalance - AccountBalance(), 2) != 0) {
ArrayResize(BalanceNew, ArraySize(BalanceOld) + 1);
for (i = 0; i <= ArraySize(BalanceOld) - 1; i++)
BalanceNew[i] = BalanceOld[i];
BalanceNew[ArraySize(BalanceOld)] = AccountBalance();
ArrayResize(BalanceOld, ArraySize(BalanceOld) + 1);
ArrayCopy(BalanceOld, BalanceNew);
PrevBalance = AccountBalance();

if (ArraySize(BalanceNew) > SlowPeriodMA) {
double FastMA = 0, SlowMA = 0;
for (i = ArraySize(BalanceNew) - FastPeriodMA; i <= ArraySize(BalanceNew) - 1; i++)
FastMA += BalanceNew[i];
FastMA /= FastPeriodMA;
for (i = ArraySize(BalanceNew) - SlowPeriodMA; i <= ArraySize(BalanceNew) - 1; i++)
SlowMA += BalanceNew[i];
SlowMA /= SlowPeriodMA;
if (FastMA > SlowMA){ Lot = 5;Print(" FastMA ",FastMA,"; SlowMA= ",SlowMA); } 
else Lot = 0.01;
}
}
if (Lot < MarketInfo(Symbol(), MODE_MINLOT)) Lot = MarketInfo(Symbol(), MODE_MINLOT);
else if (Lot > MarketInfo(Symbol(), MODE_MAXLOT)) Lot = MarketInfo(Symbol(), MODE_MAXLOT);
return (Lot);
}
 
001:

Können Sie mir sagen, warum ich keine Variablen drucken kann, nicht einmal 0 erscheint.

Der Lotse der angesehenen voix_kas. Von mir geringfügig umgestaltet.


Und bei jedem Tick erhöht sich die Größe der Arrays?

Vielleicht wäre es einfacher, einen Gleichgewichtsindikator zu erstellen. Und in Expert Advisors würde man sich an sie wenden.

 
Vinin:


Und bei jedem Tick erhöht sich die Größe der Arrays?

Und es könnte einfacher sein, einen Gleichgewichtsindikator zu erstellen. Und im Expert Advisor würden Sie bereits darauf verweisen.


Sie können, aber der Expert Advisor arbeitet in diesem Fall langsamer. Und mit der Ausgabe auf dem Bildschirm auch Unsinn stellt sich heraus, es zeichnet NUR, wenn das Geschäft geschlossen ist, und wie man es als eine kontinuierliche Linie des Gleichgewichts bestehen, verstehe ich nicht, kann jemand sagen?