Требуется помощь - страница 3

 
Jimdandy:

Я думаю, что с этим #property strict вам придется инициализировать i,j,k значением...


PipPip... Jimdandy

Твои стрелы милые
 
 
int init() 
{
   int i=0,j=0,k=0;//initialize the variables to zero (now required with #property strict line that is at top of file.
   string ls;      //strings are initialized implicitly by compiler.
   while (true) {  //this loop will run until it breaks out of it at the break;.
        j=StringFind(LotsProgression,";",i);
        //Look in the LotsProgression string for a semicolon (LotsProgression="0.1;0.2;0.3")
        //Start looking from position i (which we initialized to 0 above)and 0 is the first position of the string. 
        //So it starts at the beginning of the string looking for ; and as you can see in the string above position 0=0,.=1,1=2,;=3... semicolon at position 3
        // now j=3; 
	if (j>0) {    //true.. j is 3 now.
        ls=StringSubstr(LotsProgression,i,j-i);//Get the piece of the string from i(which is 0)to j-1(3-1) which is 2. 0-2 position string is "0.1"
        //ls is now "0.1"
        i=j+1;//now i changes from 0 to 4.
        k++;//k gets incremented up from 0 to 1.
        ArrayResize(lots,k);// lots[] array gets made to the size of k which is 1.
        lots[k-1]=StrToDouble(ls);//the lots[]array is of the double type(remember arrays start at index 0)
	 Here we are inserting "0.1" string but using StrToDouble() to make it a double (floating decimal number)into index [0].
	//now lots[0]=0.1;
        } else {    //otherwise if j was not greater than zero..until we can not find any more semicolons in the string
                    //the following lines will not run and it will never break out of the while loop. So let's say it jumps to the top again.
		    //now remember i=4,j=3 and k=1 now. So it starts looking in the string at position 4(i)for a semicolon and finds one at position 7
		    //ls now become the string from i to j-1 or from 4 to 6 which is again "0.2". now j=7,i=8,k = 2.
		    //lots array gets re-sized to 2 so now it can hold index 0 and 1. and then index position k-1(2-1)=1 gets
		    //populated with the substring "0.2" turned into a double 0.2 lots[1]=0.2;
      		    //Now on the third search of the string it finds no more semicolons and the else statement kicks in.. 	
		    //Now i=8,j=7 and k is 2
        ls=StringSubstr(LotsProgression,i);//it starts at i (position 8 and reads to the end. getting "0.3"
        k++;//k is now 3
        ArrayResize(lots,k);//array now holds 3 indexes(indices)
        lots[k-1]=StrToDouble(ls);lots[2]=0.3.
        break;we are done with this while loop and our lots array is populated like we want!
	//the question is ... why not just declare an array double lots[] = {0.1,0.2,0.3};
        }
   }
   plen=ArraySize(lots);//in this case plen is now 3..which is not used.
}
Я умею делать стрелки... но не знаю, как сделать смайлик..... :-(......or a tongue sticker outer face.... :-%
PipPip....Jimdandy...
 
Jimdandy: Я думаю, что с этим #property strict вам придется инициализировать i,j,k в значение...
  1. Пожалуйста, не публикуйте изображения кода или документации. Для кода используйте SRC. Для документации используйте кнопку ссылки.
  2. int init()
    {
       int i,j, k;
       string ls;
       while (true) {
          j=stringFind(LotsProgression,";",i);
          if (j>0) {
             ls=StrngSubstr(..._
             i=j+1;
             k++;
       :
    
    I и j инициализируются перед использованием. K ошибочно принимает начальное значение равным нулю и должно быть инициализировано должным образом.
 
WHRoeder:
  1. Пожалуйста, не публикуйте изображения кода или документации. Для кода используйте SRC. Для документации используйте кнопку "ссылки".
  2. I и j инициализируются перед использованием. K ошибочно принимает начальное значение равным нулю и должен быть инициализирован должным образом.

Извините, что я вскочил на эту мыльницу... Я заранее прошу прощения.....

1. Приношу свои извинения, я, конечно, не собирался нарушать одно из ваших правил публикации.
Я больше думал о том, как помочь кому-то лучше понять mql4.
Иногда я часами решаю, как лучше ответить на чью-то проблему.
Я выбираю лучший способ, который мне известен, чтобы донести суть. В этом процессе я
действительно могу сделать это не тем способом, который, по вашему мнению, является лучшим способом
делать это на этом сайте. Тем не менее, я думаю, что люди учатся из того, что я могу
спотыкаться и выкладывать здесь. Вы должны понимать, что не все знают.
как пользоваться этим сайтом, как это делаете вы.

2. Предложение:
Как насчет того, чтобы сделать видео о том, как правильно использовать функции на этом сайте
и как правильно использовать этот редактор при оставлении сообщения? Или хотя бы дайте мне
ссылку на это видео
.

3. Если я хочу поделиться с кем-то предложением или абзацем из документации, я не собираюсь
просто вставлять ссылку на целую страницу документации и заставлять людей искать на этой
страницу и пытаться понять, какую часть я хочу, чтобы они прочитали.

4. Строка типа....
"2. I и j инициализируются перед использованием. K ошибочно принимает начальное значение равным нулю и должен быть инициализирован должным образом."

5. Является классическим примером того, как человек, который кажется невероятно умным и талантливым и мастерски владеет кодом, тем не менее, не
понимает, что разговаривает с необразованными массами. Либо это так, либо вы действительно предполагаете, что вы
разговариваете с теми, кто интеллектуально ниже вас, и вам нравится показывать им, насколько вы умны.
Программисты, которые знают, что они делают, НЕ читают ваши сообщения. Они уже знают все, чем
чем вы можете поделиться. Незнающие люди читают это и пытаются улучшить себя.

6. Я не знаю, в каком случае это происходит с вами. То ли вы искренне обеспокоены тем, что каким-то образом этот сайт будет
станет похож на страницу facebook, или вы действительно хотите способствовать лучшему пониманию mql4,
и помочь другим, сохраняя при этом порядок на сайте, или вы в каком-то эгоистическом порыве бегаете по всему
сайту, как полицейский, который следит за тем, чтобы кто-нибудь не поставил стрелку в неправильном месте. Я очень надеюсь, что это не последнее.

7. Что я точно знаю из писем и отзывов как трейдеров, так и программистов, так это то, что многие люди перестали
приходить сюда, чтобы спросить, ответить или поделиться своими знаниями на этом сайте из-за грубого и несносного обращения с ними самими или другими, когда они спрашивают или отвечают.
с ними самими или другими обращаются, когда они задают или отвечают на вопрос. Их преследуют за то, что они не размещают информацию в
независимо от правомерности их вопроса или ценности их вклада в обучение.
Остаются только те, кто действительно отчаялся.

8. На этом сайте есть примеры, когда люди задают простой вопрос, на который можно ответить за меньшее время.
чем тратится на осуждение их за то, что они не ищут ответа на сайте, или размещают информацию в нужном месте, или включают не ту картинку.
Вы можете почувствовать страх в их вопросах, когда они задают их. Страх сделать что-то, что может расстроить БОГОВ mql4 .

9. Вместо этого их заставляют чувствовать себя нежеланными гостями и игнорируют их вопросы. Почему бы не предложить правильный способ публикации
и ответить на их вопрос? Это абсолютный позор. Никто не выигрывает. Проигрывают все. Студент остается потерянным, те.
способные помочь, молчат, а сайт mql4.com становится все менее и менее привлекательным местом для посещения.

10. "В отдаче больше счастья, чем в получении", - говорят нам.
Мне доставляет радость помогать другим здесь, на сайте Mql4.com, но эта радость быстро угасает.
Если мы должны постоянно беспокоиться о том, что нам отрубят руку за то, что мы протянули руку помощи нуждающемуся человеку, то нет больше радости, только страх.
больше нет радости, только страх.

11. Есть ли еще кто-то, кто чувствует себя так же, или я не прав? Могу ли я получить аминь?
Ладно, я спустился со своей мыльницы...
И мне все еще нравится твоя аватарка....
PipPip... Jimdandy

 
Это замечательно, вы все проделали огромную работу. Я очень благодарен всем вам за то, что вы поделились этим контентом с нами. Это действительно ценно, и я хотел бы сказать вам спасибо за то, что вы поделились с нами этой статьей.
 
Jimdandy:

7. Что я точно знаю из писем и отзывов как трейдеров, так и программистов, так это то, что многие люди перестали
приходить сюда, чтобы спросить, ответить или поделиться своими знаниями на этом сайте из-за грубого и несносного обращения с ними самими или другими, когда они спрашивают или отвечают.
с ними самими или другими обращаются, когда они задают или отвечают на вопрос. Их преследуют за то, что они не размещают информацию в
независимо от правомерности их вопроса или ценности их вклада в обучение.
Остаются только те, кто действительно отчаялся.


PipPip... Jimdandy


TBH Я решил сократить свое участие на этих форумах, потому что я нахожу их в целом негативными. Создается впечатление, что никто не знает, о чем говорит, кроме избранных. Некоторые люди явно не уважают мнение большинства других, в то время как свободно высказывают свое собственное мнение в других местах, и имеют оборот речи, который я нахожу настолько последовательным и ненужным грубым, что я часто задаюсь вопросом, как они общаются с людьми в реальной жизни. Как и вы, я подозреваю, что они отбивают у других охоту даже беспокоиться. Когда они правы (а это часто так), они очень громко заявляют о себе, а когда они не правы - молчат.

Одно из моих самых первых сообщений на этом форуме (подчеркивающее ранее незарегистрированную ошибку) даже не было признано как полезное предупреждение для других разработчиков, а было многократно отвергнуто, и только когда я отстоял свою позицию, ошибка была признана (более разумными людьми), но благодарности не последовало! Это должен был быть мой первый предупредительный выстрел! Это практически задает тон, и вскоре после этого разыгрался похожий сценарий . Недавний комментарий с моей стороны, который по какой-то причине вызвал, IMO, неоправданно резкий ответ, практически завершил для меня сделку.


Я буду вносить свой вклад в сообщество MQL и кодовую базу (теперь, когда MQL4 делает повторное использование кода немного более практичным) и, возможно, буду иногда писать здесь, когда у меня будут конкретные ответы на конкретные вопросы, которые меня особенно интересуют, но для общих вопросов большинство людей хорошо обслуживаются основными авторами, с технической точки зрения, в любом случае.

Я думаю, что некоторые здесь взяли благородную концепцию "научить человека ловить рыбу" и используют ее как оправдание, чтобы быть грубыми чаще всего. Это немного похоже на посещение ресторана в китайском квартале Лондона под названием Wong Kei, отличная еда и цена, но не ходите туда, если хотите приятной атмосферы, персонал намеренно груб, и не дай бог у вас есть законная жалоба! но у него все равно много клиентов!

PS Эта тема не является лучшей иллюстрацией того, что обсуждается, и, возможно, вполне разумна, можно найти множество "лучших" примеров!

О и "Аминь" BTW!

 
qjol:

что вас смущает, можете объяснить свою проблему


Я думаю, что это называется функцией цикла, что сбило меня с толку. Но спасибо Jimdandy за подробное объяснение.

Что я хочу? Когда я запускаю советника на графике, я хочу определить две вещи в его настройках. Количество сделок и размер каждой сделки. как показано ниже...

input string=LotsProgression "0.1;0.1;0.2;0.3;0.4;0.6;0.8;1.1;1.5;2.0;2.7;3.6;4.7;6.2;8.0;10.2;13.0;16.5;20.8;26.3;33.1" //Change able values.
и я пытаюсь написать код для этого. что я считаю "сложным?".
 
qgmql:

[...]что я считаю "сложным?".


удачи
 
Jimdandy:
//the question is ... why not just declare an array double lots[] = {0.1,0.2,0.3};
Я видел это в https://www.mql5.com/en/forum/129933, но там это отключено и используется другой код для расчета.....
//double aLots[]={1,3,6,12,24,48,96,192,384,768}; declared, but i think its not used.

//--- or maybe someone has changed it with below code.

if(MaxLots==0) llots=Lots; else       //in paulo costa hedge
if(MaxLots==Lots) llots=3*Lots; else  //llots=3+Lots also works
llots=MaxLots*2;                      //llots=MaxLots+2 also works

Если я применю ваше предложение, то может ли пользователь изменить значения лотов в настройках GUI при размещении советника на графике?

PS: Я видел ваш советник 2ma cross. который открывает сделки на кроссах (но только по одной сделке за раз), возможно ли, чтобы советник открывал сделки только на каждом кроссе, но не закрывал на обратном?

 
qgmql:


Я думаю, что это называется функцией цикла, что сбило меня с толку. Но спасибо Jimdandy за подробное объяснение.

Что я хочу? Когда я запускаю советника на графике, я хочу определить две вещи в его настройках. Количество сделок и размер каждой сделки. как показано ниже...

И я пытаюсь написать код для этого, который мне кажется "сложным?".

Перебор массива, созданного с помощью новой функции MQL4++ StringSplit ? вызов StringToDouble внутри цикла. (см. пример на этой странице для начала),