Gibt es eine Möglichkeit, die Zahlen innerhalb eines bestimmten Bereichs zufällig zu mischen?
Zum Beispiel gibt es einen Bereich von 0 bis 9. Ist es möglich, sie zu mischen - 5863014297? Stir genau, nicht eine Zufallszahl aus diesem Bereich erhalten - rand ist nicht geeignet.
Gibt es eine Möglichkeit, die Zahlen innerhalb eines bestimmten Bereichs zufällig zu mischen?
Zum Beispiel gibt es einen Bereich von 0 bis 9. Ist es möglich, sie zu mischen - 5863014297? Stir genau, nicht eine Zufallszahl aus einem bestimmten Bereich - rand ist nicht geeignet.
Übersetzen Sie die Zahl in eine Zeichenkette, tauschen Sie die Zeichen der Zeichenkette mit Hilfe eines Algorithmus (den Sie sich selbst ausdenken können) aus - und konvertieren Sie dann die Zahl aus der Zeichenkette zurück in double oder int
diese Zahl in eine Zeichenkette umwandeln, die Zeichen dieser Zeichenkette mit Hilfe eines Algorithmus (den Sie sich selbst ausdenken können) miteinander austauschen und dann die Zahl aus der Zeichenkette wieder in double oder int umwandeln.
Vielen Dank, das ist eine Option!
Und wenn der Bereich mehrere Tausend oder sogar Zehntausende von Zahlen umfasst?
Hallo!!! Ich verstehe es nicht))) Die Reihenfolge in der Liste der Objekte aus irgendeinem Grund, wenn Sie nicht ändern Sie die Namen der Objekte, dann bei der Auswahl und Verarbeitung von Objekten durch diesen Zyklus
for(int i=0; i < Fibo_Koll; i++)
{
n=ObjectName(0,i,0,OBJ_FIBO);
Wenn Sie jedoch die Namen mit diesen Funktionen ändern, wird die Reihenfolge beibehalten.
bool F =ObjectSetString(0,n,OBJPROP_NAME,NameFiboUp[UP]);
bool F =ObjectSetString(0,n,OBJPROP_NAME,NameFiboDown[Down]);
dann wird das nächste Objekt nach dem Zufallsprinzip ausgewählt.
//+------------------------------------------------------------------+//| Fibo_Massiv.mq5 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2020, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+// Expert initialization functionstring NameFiboUp[15]; // Объявление массиваstring NameFiboDown[15]; // Объявление массива string NameFibo[9]; // Объявление массива //+------------------------------------------------------------------+intOnInit()
{
//---
NameFiboUp[1]="FiboUp1 ";
NameFiboDown[1]="FiboDown1 ";
NameFiboUp[2]="FiboUp2 ";
NameFiboDown[2]="FiboDown2";
NameFiboUp[3]="FiboUp3";
NameFiboDown[3]="FiboDown3 ";
NameFiboUp[4]="FiboUp4 ";
NameFiboDown[4]="FiboDown4 ";
NameFiboUp[5]="FiboUp5";
NameFiboDown[5]="FiboDown5 ";
NameFiboUp[6]="FiboUp6 ";
NameFiboDown[6]="FiboDown6 ";
NameFiboUp[7]="FiboUp7 ";
NameFiboDown[7]="FiboDown7 ";
NameFiboUp[8]="FiboUp8 ";
NameFiboDown[8]="FiboDown8 ";
NameFiboUp[9]="FiboUp9 ";
NameFiboDown[9]="FiboDown9 ";
NameFiboUp[10]="FiboUp10 ";
NameFiboDown[10]="FiboDown10";
NameFiboUp[11]="FiboUp11 ";
NameFiboDown[11]="FiboDown11 ";
NameFiboUp[12]="FiboUp12 ";
NameFiboDown[12]="FiboDown12 ";
NameFiboUp[13]="FiboUp13 ";
NameFiboDown[13]="FiboDown13";
NameFiboUp[14]="FiboUp14 ";
NameFiboDown[14]= "FiboDown14";
//---------------------------------------------
NameFiboUp[1]="M1 ";
NameFiboUp[2]="M5 ";
NameFiboUp[3]="M15";
NameFiboUp[4]="H1 ";
NameFiboUp[5]="H4 ";
NameFiboUp[6]="Da ";
NameFiboUp[7]="We ";
NameFiboUp[8]="Mo ";
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//---
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
int UP=1;
int Down=1;
string nameUP = "FiboUp";
string nameDown = "FiboDown";
double FiboDown[4][10],FiboUp[4][10]; // 2x мерный массивint Fibo_Koll = ObjectsTotal(0,0,OBJ_FIBO); //Запрос колличества объектов Fibo//_________________________________________________________if(Fibo_Koll==0) //Если нет не одного фибо выход //return; ////_________________________________________________________//string n;
// ObjectName(0,0,0,OBJ_FIBO); //Вытаскивает имя найденого фибоfor(int i=0; i < Fibo_Koll; i++)
{
n=ObjectName(0,i,0,OBJ_FIBO);
//----------------------------------------------------------------------------------------double Fibo_Level_0= ObjectGetDouble(
0, // идентификатор графика
n, // имя объектаOBJPROP_PRICE, // идентификатор свойства0// модификатор свойства
);
double Fibo_Level_1= ObjectGetDouble(
0, // идентификатор графика
n, // имя объектаOBJPROP_PRICE, // идентификатор свойства1// модификатор свойства
);
//------------------------------------------------------------------------------------------------------if(Fibo_Level_0>Fibo_Level_1)
{
//вызов функции расчёта уровня 78.6double Fibo_78_Up = Function_Up(Fibo_Level_0, Fibo_Level_1);
//--------------------------------------------------------------------
FiboUp[UP][1]=1; // Тип объектов 1 == FiboUp
FiboUp[UP][2]=UP; // Нумерация объектов FiboUp по типу
FiboUp[UP][3]=Fibo_78_Up; // 78.6%
FiboUp[UP][4]=0; // 61.8%
FiboUp[UP][5]=0; // 50%//------------------------------------------------------------------//Изменение имени объектаbool F =ObjectSetString(0,n,OBJPROP_NAME,NameFiboUp[UP]);
UP++;
}
else
{
//вызов функции расчёта уровня 78.6double Fibo_78_Down = Function_Down(Fibo_Level_0, Fibo_Level_1);
//-------------------------------------------------------------------
FiboDown[Down][1]=2; // // Тип объектов 2 == FiboDown
FiboDown[Down][2]=Down; // Нумерация объектов по типу
FiboDown[Down][3]=Fibo_78_Down; // 78.6%
FiboDown[Down][4]=0; // 61.8%
FiboDown[Down][5]=0; // 50%Alert(" FiboDown[1][1] = ", FiboDown[1][1],
" FiboDown[1][3] = ", FiboDown[1][3],
" FiboDown[2][1] = ", FiboDown[2][1],
" FiboDown[2][3] = ", FiboDown[2][3]);
//------------------------------------------------------------------//Изменение имени объектаbool F =ObjectSetString(0,n,OBJPROP_NAME,NameFiboDown[Down]);
Down++;
}
}
//+------------------------------------------------------------------+Alert(" FiboDown[1][1] = ", FiboDown[1][1],
" FiboDown[1][3] = ", FiboDown[1][3],
" FiboDown[2][1] = ", FiboDown[2][1],
" FiboDown[2][3] = ", FiboDown[2][3]);
Alert(" FiboUp[1][1] = ", FiboUp[1][1],
" FiboUp[1][3] = ", FiboUp[1][3],
" FiboUp[2][1] = ", FiboUp[2][1],
" FiboUp[2][3] = ", FiboUp[2][3]);
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+double Function_Up(double a, double b) // имя функции и список параметров
{
double Sum_100 = a - b; //Вычисляем 100% В пунктах от точек построения фибоdouble Sum_78 = Sum_100 * 78.6 / 100; //Вычисляем 78.6% В пунктахreturn (Sum_78 + b); // Вычисляем 78.6% в цене инструмента
}
//+------------------------------------------------------------------+double Function_Down(double a, double b) // имя функции и список параметров
{
double Sum_100 = b - a ; //Вычисляем 100% В пунктах от точек построения фибоdouble Sum_78 = Sum_100 * 21.4 / 100; //Вычисляем 78.6% В пунктахreturn (Sum_78 + a); // Вычисляем 78.6% в цене инструмента
}
//+------------------------------------------------------------------+
Nachdem ich eine Optimierung des Expert Advisors vorgenommen habe, bleiben die Agenten nach dem Schließen des Terminals immer noch in den Prozessen hängen und verbrauchen RAM.
Wie nicht kritische RAM-Volumen ist eine Menge, aber wenn ich das Spiel laufen, aufgrund der Tatsache, dass der Speicher ständig auf eine Reihe von Nachzüglern habe ich FPS Tropfen von mindestens 20 Frames.
Ich muss entweder den Computer überlasten oder einen Prozess nach dem anderen beenden...
Ehrlich gesagt, fängt es schon an, nervig zu werden.
Sagen Sie mir, dieser Fehler oder so konzipiert, mit Ausnahme des Terminals von der Eröffnung des Brokers alles andere ist nicht gestellt, von Zeit zu Zeit ist es aktualisiert, alle oder Manipulationen mit ihm nicht tun.
Kira27: Hallo!!! Können Sie mir sagen, kann es nicht bekommen))) Die Reihenfolge in der Liste der Objekte aus irgendeinem Grund, wenn Sie nicht ändern Sie die Namen der Objekte, dann, wenn Sie auswählen und verarbeiten Objekte durch diese Schleife
Wenn Sie jedoch die Namen mit diesen Funktionen ändern, wird die Reihenfolge beibehalten.
dann wird das nächste Objekt nach dem Zufallsprinzip ausgewählt.
Denn wenn ein Objekt umbenannt wird, wird es neu erstellt. Ein Objekt wird gelöscht, ein anderes wird erstellt, und in der Liste aller Objekte werden sie in der Reihenfolge ihres Erstellungszeitpunkts angeordnet.
Denn wenn ein Objekt umbenannt wird, wird es neu erstellt. Das eine wird gelöscht, das andere neu erstellt, und in der Liste aller Objekte werden sie in der Reihenfolge ihres Erstellungszeitpunkts angeordnet.
Irgendwelche Vorschläge?
Irgendwelche Vorschläge?
Nicht =, sondern ==
Gibt es eine Möglichkeit, die Zahlen innerhalb eines bestimmten Bereichs zufällig zu mischen?
Zum Beispiel gibt es einen Bereich von 0 bis 9. Ist es möglich, sie zu mischen - 5863014297? Stir genau, nicht eine Zufallszahl aus diesem Bereich erhalten - rand ist nicht geeignet.
Gibt es eine Möglichkeit, die Zahlen innerhalb eines bestimmten Bereichs zufällig zu mischen?
Zum Beispiel gibt es einen Bereich von 0 bis 9. Ist es möglich, sie zu mischen - 5863014297? Stir genau, nicht eine Zufallszahl aus einem bestimmten Bereich - rand ist nicht geeignet.
Übersetzen Sie die Zahl in eine Zeichenkette, tauschen Sie die Zeichen der Zeichenkette mit Hilfe eines Algorithmus (den Sie sich selbst ausdenken können) aus - und konvertieren Sie dann die Zahl aus der Zeichenkette zurück in double oder int
diese Zahl in eine Zeichenkette umwandeln, die Zeichen dieser Zeichenkette mit Hilfe eines Algorithmus (den Sie sich selbst ausdenken können) miteinander austauschen und dann die Zahl aus der Zeichenkette wieder in double oder int umwandeln.
Danke, das ist eine Option!
eine Zeichenkette ist ein Array
ein Array aus der gewünschten Anzahl erstellen
Wenn Sie jedoch die Namen mit diesen Funktionen ändern, wird die Reihenfolge beibehalten.
dann wird das nächste Objekt nach dem Zufallsprinzip ausgewählt.
Wer hat diese Erfahrung gemacht
Vin 10
Terminal Baujahr 2715.
Nachdem ich eine Optimierung des Expert Advisors vorgenommen habe, bleiben die Agenten nach dem Schließen des Terminals immer noch in den Prozessen hängen und verbrauchen RAM.
Wie nicht kritische RAM-Volumen ist eine Menge, aber wenn ich das Spiel laufen, aufgrund der Tatsache, dass der Speicher ständig auf eine Reihe von Nachzüglern habe ich FPS Tropfen von mindestens 20 Frames.
Ich muss entweder den Computer überlasten oder einen Prozess nach dem anderen beenden...
Ehrlich gesagt, fängt es schon an, nervig zu werden.
Sagen Sie mir, dieser Fehler oder so konzipiert, mit Ausnahme des Terminals von der Eröffnung des Brokers alles andere ist nicht gestellt, von Zeit zu Zeit ist es aktualisiert, alle oder Manipulationen mit ihm nicht tun.
Hallo!!! Können Sie mir sagen, kann es nicht bekommen))) Die Reihenfolge in der Liste der Objekte aus irgendeinem Grund, wenn Sie nicht ändern Sie die Namen der Objekte, dann, wenn Sie auswählen und verarbeiten Objekte durch diese Schleife
Wenn Sie jedoch die Namen mit diesen Funktionen ändern, wird die Reihenfolge beibehalten.
dann wird das nächste Objekt nach dem Zufallsprinzip ausgewählt.
Denn wenn ein Objekt umbenannt wird, wird es neu erstellt. Ein Objekt wird gelöscht, ein anderes wird erstellt, und in der Liste aller Objekte werden sie in der Reihenfolge ihres Erstellungszeitpunkts angeordnet.
Denn wenn ein Objekt umbenannt wird, wird es neu erstellt. Das eine wird gelöscht, das andere neu erstellt, und in der Liste aller Objekte werden sie in der Reihenfolge ihres Erstellungszeitpunkts angeordnet.
Vielen Dank!!! Wo kann ich das nachlesen?