Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 996

 
001:

Die ursprünglichen Variablen sind vorhanden, aber im Laufe der Arbeit werden neue Variablen benötigt. Hier ist die Frage, wie kann ich NEUE Variablen per Code erstellen? Ich habe N Variablen und


und verschiedene TFs verwendet werden.

Sie können Arrays und Funktionen verwenden
 
Vinin:
Sie können Arrays und Funktionen verwenden
Deshalb frage ich ja, weil ich mir den Kopf darüber zerbrochen habe, wie man das macht.
 
001:
Deshalb frage ich Sie, weil ich mir den Kopf darüber zerbreche, wie ich es machen soll.

Bislang wurde nur über allgemeine Aspekte gesprochen.

Ohne konkrete Angaben geht es nicht.

Bringen Sie mir den Code, der mir das Hirn zermartert hat

 
Vinin :

Bisher haben wir nur über den General gesprochen.

Ohne Besonderheiten geht es nicht.

Geben Sie den Code, der mir den Kopf gebrochen hat


Dies ist für den M15. Alle N Minuten ist eine Variable, bei M15 sind es 96. Statt dieser Schande hätte ich gerne einen schönen Code.

 int количество_лоу_15= 0 ;
int количество_лоу_30= 0 ;
int количество_лоу_45= 0 ;
int количество_лоу_60= 0 ;
int количество_лоу_75= 0 ;
int количество_лоу_90= 0 ;
int количество_лоу_105= 0 ;
int количество_лоу_120= 0 ;
int количество_лоу_135= 0 ;
int количество_лоу_150= 0 ;
int количество_лоу_165= 0 ;
int количество_лоу_180= 0 ;
int количество_лоу_195= 0 ;
int количество_лоу_210= 0 ;
int количество_лоу_225= 0 ;
int количество_лоу_240= 0 ;
int количество_лоу_255= 0 ;
int количество_лоу_270= 0 ;
int количество_лоу_285= 0 ;
int количество_лоу_300= 0 ;
int количество_лоу_315= 0 ;
int количество_лоу_330= 0 ;
int количество_лоу_345= 0 ;
int количество_лоу_360= 0 ;
int количество_лоу_375= 0 ;
int количество_лоу_390= 0 ;
int количество_лоу_405= 0 ;
int количество_лоу_420= 0 ;
int количество_лоу_435= 0 ;
int количество_лоу_450= 0 ;
int количество_лоу_465= 0 ;
int количество_лоу_480= 0 ;
int количество_лоу_495= 0 ;
int количество_лоу_510= 0 ;
int количество_лоу_525= 0 ;
int количество_лоу_540= 0 ;
int количество_лоу_555= 0 ;
int количество_лоу_570= 0 ;
int количество_лоу_585= 0 ;
int количество_лоу_600= 0 ;
int количество_лоу_615= 0 ;
int количество_лоу_630= 0 ;
int количество_лоу_645= 0 ;
int количество_лоу_660= 0 ;
int количество_лоу_675= 0 ;
int количество_лоу_690= 0 ;
int количество_лоу_705= 0 ;
int количество_лоу_720= 0 ;
int количество_лоу_735= 0 ;
int количество_лоу_750= 0 ;
int количество_лоу_765= 0 ;
int количество_лоу_780= 0 ;
int количество_лоу_795= 0 ;
int количество_лоу_810= 0 ;
int количество_лоу_825= 0 ;
int количество_лоу_840= 0 ;
int количество_лоу_855= 0 ;
int количество_лоу_870= 0 ;
int количество_лоу_885= 0 ;
int количество_лоу_900= 0 ;
int количество_лоу_915= 0 ;
int количество_лоу_930= 0 ;
int количество_лоу_945= 0 ;
int количество_лоу_960= 0 ;
int количество_лоу_975= 0 ;
int количество_лоу_990= 0 ;
int количество_лоу_1005= 0 ;
int количество_лоу_1020= 0 ;
int количество_лоу_1035= 0 ;
int количество_лоу_1050= 0 ;
int количество_лоу_1065= 0 ;
int количество_лоу_1080= 0 ;
int количество_лоу_1095= 0 ;
int количество_лоу_1110= 0 ;
int количество_лоу_1125= 0 ;
int количество_лоу_1140= 0 ;
int количество_лоу_1155= 0 ;
int количество_лоу_1170= 0 ;
int количество_лоу_1185= 0 ;
int количество_лоу_1200= 0 ;
int количество_лоу_1215= 0 ;
int количество_лоу_1230= 0 ;
int количество_лоу_1245= 0 ;
int количество_лоу_1260= 0 ;
int количество_лоу_1275= 0 ;
int количество_лоу_1290= 0 ;
int количество_лоу_1305= 0 ;
int количество_лоу_1320= 0 ;
int количество_лоу_1335= 0 ;
int количество_лоу_1350= 0 ;
int количество_лоу_1365= 0 ;
int количество_лоу_1380= 0 ;
int количество_лоу_1395= 0 ;
int количество_лоу_1410= 0 ;
int количество_лоу_1425= 0 ;
////////   
   if (время_лоу   ==     15    )   количество_лоу_15   =количество_лоу_15   + 1 ;
   if (время_лоу   ==     30    )   количество_лоу_30   =количество_лоу_30   + 1 ;
   if (время_лоу   ==     45    )   количество_лоу_45   =количество_лоу_45   + 1 ;
   if (время_лоу   ==     60    )   количество_лоу_60   =количество_лоу_60   + 1 ;
   if (время_лоу   ==     75    )   количество_лоу_75   =количество_лоу_75   + 1 ;
   if (время_лоу   ==     90    )   количество_лоу_90   =количество_лоу_90   + 1 ;
   if (время_лоу   ==   105    )   количество_лоу_105   =количество_лоу_105   + 1 ;
   if (время_лоу   ==   120    )   количество_лоу_120   =количество_лоу_120   + 1 ;
   if (время_лоу   ==   135    )   количество_лоу_135   =количество_лоу_135   + 1 ;
   if (время_лоу   ==   150    )   количество_лоу_150   =количество_лоу_150   + 1 ;
   if (время_лоу   ==   165    )   количество_лоу_165   =количество_лоу_165   + 1 ;
   if (время_лоу   ==   180    )   количество_лоу_180   =количество_лоу_180   + 1 ;
   if (время_лоу   ==   195    )   количество_лоу_195   =количество_лоу_195   + 1 ;
   if (время_лоу   ==   210    )   количество_лоу_210   =количество_лоу_210   + 1 ;
   if (время_лоу   ==   225    )   количество_лоу_225   =количество_лоу_225   + 1 ;
   if (время_лоу   ==   240    )   количество_лоу_240   =количество_лоу_240   + 1 ;
   if (время_лоу   ==   255    )   количество_лоу_255   =количество_лоу_255   + 1 ;
   if (время_лоу   ==   270    )   количество_лоу_270   =количество_лоу_270   + 1 ;
   if (время_лоу   ==   285    )   количество_лоу_285   =количество_лоу_285   + 1 ;
   if (время_лоу   ==   300    )   количество_лоу_300   =количество_лоу_300   + 1 ;
   if (время_лоу   ==   315    )   количество_лоу_315   =количество_лоу_315   + 1 ;
   if (время_лоу   ==   330    )   количество_лоу_330   =количество_лоу_330   + 1 ;
   if (время_лоу   ==   345    )   количество_лоу_345   =количество_лоу_345   + 1 ;
   if (время_лоу   ==   360    )   количество_лоу_360   =количество_лоу_360   + 1 ;
   if (время_лоу   ==   375    )   количество_лоу_375   =количество_лоу_375   + 1 ;
   if (время_лоу   ==   390    )   количество_лоу_390   =количество_лоу_390   + 1 ;
   if (время_лоу   ==   405    )   количество_лоу_405   =количество_лоу_405   + 1 ;
   if (время_лоу   ==   420    )   количество_лоу_420   =количество_лоу_420   + 1 ;
   if (время_лоу   ==   435    )   количество_лоу_435   =количество_лоу_435   + 1 ;
   if (время_лоу   ==   450    )   количество_лоу_450   =количество_лоу_450   + 1 ;
   if (время_лоу   ==   465    )   количество_лоу_465   =количество_лоу_465   + 1 ;
   if (время_лоу   ==   480    )   количество_лоу_480   =количество_лоу_480   + 1 ;
   if (время_лоу   ==   495    )   количество_лоу_495   =количество_лоу_495   + 1 ;
   if (время_лоу   ==   510    )   количество_лоу_510   =количество_лоу_510   + 1 ;
   if (время_лоу   ==   525    )   количество_лоу_525   =количество_лоу_525   + 1 ;
   if (время_лоу   ==   540    )   количество_лоу_540   =количество_лоу_540   + 1 ;
   if (время_лоу   ==   555    )   количество_лоу_555   =количество_лоу_555   + 1 ;
   if (время_лоу   ==   570    )   количество_лоу_570   =количество_лоу_570   + 1 ;
   if (время_лоу   ==   585    )   количество_лоу_585   =количество_лоу_585   + 1 ;
   if (время_лоу   ==   600    )   количество_лоу_600   =количество_лоу_600   + 1 ;
   if (время_лоу   ==   615    )   количество_лоу_615   =количество_лоу_615   + 1 ;
   if (время_лоу   ==   630    )   количество_лоу_630   =количество_лоу_630   + 1 ;
   if (время_лоу   ==   645    )   количество_лоу_645   =количество_лоу_645   + 1 ;
   if (время_лоу   ==   660    )   количество_лоу_660   =количество_лоу_660   + 1 ;
   if (время_лоу   ==   675    )   количество_лоу_675   =количество_лоу_675   + 1 ;
   if (время_лоу   ==   690    )   количество_лоу_690   =количество_лоу_690   + 1 ;
   if (время_лоу   ==   705    )   количество_лоу_705   =количество_лоу_705   + 1 ;
   if (время_лоу   ==   720    )   количество_лоу_720   =количество_лоу_720   + 1 ;
   if (время_лоу   ==   735    )   количество_лоу_735   =количество_лоу_735   + 1 ;
   if (время_лоу   ==   750    )   количество_лоу_750   =количество_лоу_750   + 1 ;
   if (время_лоу   ==   765    )   количество_лоу_765   =количество_лоу_765   + 1 ;
   if (время_лоу   ==   780    )   количество_лоу_780   =количество_лоу_780   + 1 ;
   if (время_лоу   ==   795    )   количество_лоу_795   =количество_лоу_795   + 1 ;
   if (время_лоу   ==   810    )   количество_лоу_810   =количество_лоу_810   + 1 ;
   if (время_лоу   ==   825    )   количество_лоу_825   =количество_лоу_825   + 1 ;
   if (время_лоу   ==   840    )   количество_лоу_840   =количество_лоу_840   + 1 ;
   if (время_лоу   ==   855    )   количество_лоу_855   =количество_лоу_855   + 1 ;
   if (время_лоу   ==   870    )   количество_лоу_870   =количество_лоу_870   + 1 ;
   if (время_лоу   ==   885    )   количество_лоу_885   =количество_лоу_885   + 1 ;
   if (время_лоу   ==   900    )   количество_лоу_900   =количество_лоу_900   + 1 ;
   if (время_лоу   ==   915    )   количество_лоу_915   =количество_лоу_915   + 1 ;
   if (время_лоу   ==   930    )   количество_лоу_930   =количество_лоу_930   + 1 ;
   if (время_лоу   ==   945    )   количество_лоу_945   =количество_лоу_945   + 1 ;
   if (время_лоу   ==   960    )   количество_лоу_960   =количество_лоу_960   + 1 ;
   if (время_лоу   ==   975    )   количество_лоу_975   =количество_лоу_975   + 1 ;
   if (время_лоу   ==   990    )   количество_лоу_990   =количество_лоу_990   + 1 ;
   if (время_лоу   ==   1005    )   количество_лоу_1005   =количество_лоу_1005   + 1 ;
   if (время_лоу   ==   1020    )   количество_лоу_1020   =количество_лоу_1020   + 1 ;
   if (время_лоу   ==   1035    )   количество_лоу_1035   =количество_лоу_1035   + 1 ;
   if (время_лоу   ==   1050    )   количество_лоу_1050   =количество_лоу_1050   + 1 ;
   if (время_лоу   ==   1065    )   количество_лоу_1065   =количество_лоу_1065   + 1 ;
   if (время_лоу   ==   1080    )   количество_лоу_1080   =количество_лоу_1080   + 1 ;
   if (время_лоу   ==   1095    )   количество_лоу_1095   =количество_лоу_1095   + 1 ;
   if (время_лоу   ==   1110    )   количество_лоу_1110   =количество_лоу_1110   + 1 ;
   if (время_лоу   ==   1125    )   количество_лоу_1125   =количество_лоу_1125   + 1 ;
   if (время_лоу   ==   1140    )   количество_лоу_1140   =количество_лоу_1140   + 1 ;
   if (время_лоу   ==   1155    )   количество_лоу_1155   =количество_лоу_1155   + 1 ;
   if (время_лоу   ==   1170    )   количество_лоу_1170   =количество_лоу_1170   + 1 ;
   if (время_лоу   ==   1185    )   количество_лоу_1185   =количество_лоу_1185   + 1 ;
   if (время_лоу   ==   1200    )   количество_лоу_1200   =количество_лоу_1200   + 1 ;
   if (время_лоу   ==   1215    )   количество_лоу_1215   =количество_лоу_1215   + 1 ;
   if (время_лоу   ==   1230    )   количество_лоу_1230   =количество_лоу_1230   + 1 ;
   if (время_лоу   ==   1245    )   количество_лоу_1245   =количество_лоу_1245   + 1 ;
   if (время_лоу   ==   1260    )   количество_лоу_1260   =количество_лоу_1260   + 1 ;
   if (время_лоу   ==   1275    )   количество_лоу_1275   =количество_лоу_1275   + 1 ;
   if (время_лоу   ==   1290    )   количество_лоу_1290   =количество_лоу_1290   + 1 ;
   if (время_лоу   ==   1305    )   количество_лоу_1305   =количество_лоу_1305   + 1 ;
   if (время_лоу   ==   1320    )   количество_лоу_1320   =количество_лоу_1320   + 1 ;
   if (время_лоу   ==   1335    )   количество_лоу_1335   =количество_лоу_1335   + 1 ;
   if (время_лоу   ==   1350    )   количество_лоу_1350   =количество_лоу_1350   + 1 ;
   if (время_лоу   ==   1365    )   количество_лоу_1365   =количество_лоу_1365   + 1 ;
   if (время_лоу   ==   1380    )   количество_лоу_1380   =количество_лоу_1380   + 1 ;
   if (время_лоу   ==   1395    )   количество_лоу_1395   =количество_лоу_1395   + 1 ;
   if (время_лоу   ==   1410    )   количество_лоу_1410   =количество_лоу_1410   + 1 ;
   if (время_лоу   ==   1425    )   количество_лоу_1425   =количество_лоу_1425   + 1 ;
 
001:

Dies ist für M15. Alle N Minuten ist eine Variable, für M15 gibt es 96. Ich würde gerne einen schönen Code anstelle dieses Durcheinanders erhalten.

Um die richtige Entscheidung zu treffen, müssen Sie wissen, was Sie erreichen wollen

 
001:

Dies ist für M15. Alle N Minuten ist eine Variable, für M15 gibt es 96. Ich hätte gerne einen schönen Code anstelle dieses Durcheinanders.

Verwenden Sie Arrays und for-Schleifen. Wenn es darum geht, programmatisch eine neue Variable zu erstellen, z. B. Alle 5 Minuten z.B. eine neue Variable programmatisch zu erstellen, ist nicht möglich.
 
001:
Deshalb frage ich ja, weil ich mir den Kopf darüber zerbreche, wie ich es machen soll.
int MASS_LOW [];                                         // объявляем массив
int quantity=96;                                         // количество_лоу, можно изменять в программе и делать заново ресайз массива
ArrayResize(MASS_LOW,quantity);                          // размер масиива = количество_лоу
ArrayFill(MASS_LOW,0,quantity,0);                        // обнуление массива при необходмости

for(cnt=0; cnt<quantity; cnt++)                       // перебираем количество_лоу (от 0 до 95)
   {
   int c=(cnt+1)*15;                                    // 15 30 45 60 ....
   if (time_low == c) MASS_LOW [cnt]=MASS_LOW [cnt]++; // сравниваем время_лоу и увеличиваем при необходимости ячейку массива
   }

oder sofort, ohne Vergleich und Überschreibung, nur durch Vergrößern der gewünschten Zelle:

cnt = time_low/15-1; 
MASS_LOW [cnt]=MASS_LOW [cnt]++;
 

Liebe Gurus, bitte, helft mir, ich bin ein Neuling!

Ich versuche zu verstehen, wie die in MT4 geschriebenen Indikatoren funktionieren. Ich gehe davon aus, dass Indikatoren auf der Grundlage von Balken berechnet werden, d. h. wenn ich in den Parametern des benutzerdefinierten gleitenden Durchschnittsindikators die Periode (=) 13 einstelle, handelt es sich um einen Durchschnittswert über 13 Balken des entsprechenden Diagramms.

Aber ich sehe keinen Event-Handler für den (von mir erstellten) Indikator, nur OnTick. Es bedeutet, dass (meine) Indikator sollte automatisch "Form" Bars aus Ticks, indem sie, sagen wir, von Minuten (für die Wartung der Tabelle M1)?

Ich schaue in den Code eines vorgefertigten Indikators Custom Moving Average - er hat kein OnTick ... Das entsprechende Calculate-Ereignis im Handbuch besagt:"Das Calculate-Ereignis wird nur für Indikatoren [...] und bei jeder Änderung der Preisdaten erzeugt". Mit anderen Worten: OnCalculate reagiert auf jeden Tick?

 
fxseminar:

Liebe Gurus, bitte, helft mir, ich bin ein Neuling!

Ich versuche zu verstehen, wie die in MT4 geschriebenen Indikatoren funktionieren. Ich gehe davon aus, dass Indikatoren auf der Grundlage von Balken berechnet werden, d. h. wenn ich in den Parametern des benutzerdefinierten gleitenden Durchschnittsindikators die Periode (=) 13 einstelle, handelt es sich um einen Durchschnittswert über 13 Balken des entsprechenden Diagramms.

Aber ich sehe keine Ereignis-Handler wie OnBar, nur OnTick. Es bedeutet, dass (meine) Indikator sollte automatisch "Form" Bars aus Ticks, indem sie, sagen wir, von Minuten (für die Wartung der Tabelle M1)?

Ich schaue in den Code eines vorgefertigten Indikators Custom Moving Average - er hat kein OnTick ... Das entsprechende Calculate-Ereignis im Handbuch besagt:"Das Calculate-Ereignis wird nur für Indikatoren [...] und bei jeder Änderung der Preisdaten erzeugt". Mit anderen Worten: OnCalculate reagiert auf jeden Tick?


Zu jedem Tick, wenn Sie Close[0] verwenden. Sie können Close[1] oder Open[0] verwenden, dann sehen Sie die Änderungen nur, wenn sich der Balken ändert.
 
borilunad:
Für jeden Tick, wenn Sie Close[0] verwenden. Sie können Close[1] oder Open[0] verwenden, dann sehen Sie die Änderung nur, wenn Sie den Balken wechseln.
-- Derbenutzerdefinierte gleitende Durchschnittsindikator kann leiderKEINEN Durchschnitt über Ticks bilden. Können Sie sich vorstellen, wie das zum Beispiel auf einem täglichen Zeitrahmen funktionieren (aussehen) würde?