Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 402

 
artmedia70:
Это отправка торгового запроса на сервер.


Ой.

Я имел ввиду OrderSelect.


khorosh:
Почитайте про функции KimIV и поймёте, что большая часть из них предназначена для извлечения той или иной информации о открытых или закрытых ордерах.

Очередной раз бороздя страницы учебника, столкнулся с непониманием использования функции "Учет ордеров". Решил спросить.
Функции KimIV сложны для восприятия, но рассмотрю каждую деталь (хоть это иррационально).
О-у, насчет примера с ПК, телевизором, телефоном - очень хороший пример. Сейчас порассуждал о строении своего телевизора и пришел к выводу, что хорошо знаю, как устроен мой телевизор (года три назад "горел желанием" его разобрать, именно в тот момент, когда мои родители застали меня за разбиранием телевизора, я впервые получил доступ в интернет).
 
Link_x:

Ой.

Я имел ввиду OrderSelect.


Очередной раз бороздя страницы учебника, столкнулся с непониманием использования функции "Учет ордеров". Решил спросить.
Функции KimIV сложны для восприятия, но рассмотреть каждую деталь (хоть это иррационально).
О-у, насчет примера с ПК, телевизором, телефоном - очень хороший пример. Сейчас порассуждал о строении своего телевизора и пришел к выводу, что хорошо знаю, как устроен мой телевизор (года три назад "горел желанием" его разобрать, именно в тот момент, когда мои родители застали меня за разбиранием телевизора, я впервые получил доступ в интернет).

У Игоря очень доступный для понимания код и логика. Много лишнего для универсальности, но всё же. Покажите что вам там не понятно, и я расскажу.

OrderSelect() - выбирает ордер. Это первое, что нужно сделать при работе с ордерами.

 
artmedia70:

У Игоря очень доступный для понимания код и логика. Много лишнего для универсальности, но всё же. Покажите что вам там не понятно, и я расскажу.

OrderSelect() - выбирает ордер. Это первое, что нужно сделать при работе с ордерами.



Прекрасно! "Поехали"! :)

"Кирпичик под номером один".
Мое представление значений составляющих:
int GetTypeLastClosePos(string sy="", int mn=-1) {                            // Обозначение пользовательской функции, строковой переменной, а так же числовой переменной.
  datetime t;                                                                 // Установление переменной, связанной со временем. 
  int      i, k=OrdersHistoryTotal(), r=-1;                                   // Обозначение числовой переменной, переменной, использующей исторические все данные, утверждение значения r.
  if (sy=="0") sy=Symbol();                                                   // Если строковая переменная равняется "0", то она имеет случайное значение.
  for (i=0; i<k; i++) {                                                       // Начало выяснения типа позиции, при обстоятельствах: i < K, а так будет всегда.
   if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {                         // Поиск ордера из истории закрытых ордеров с "билетом" i, точным номером позиции. Если ордер найден, то
      if ((OrderSymbol()==sy || sy=="") && (mn<0 || OrderMagicNumber()==mn)){ // задается инструмент, по которому был открыт ордер как sy и его уникальный номер как mn. Это еще не все.
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {                    // Тип ордера определяется как покупка или продажа заданного значения sy инструмента.
          if (t<OrderCloseTime()) {                                           // Если время закрытия ордера определено, тогда определяются две переменные:
            t=OrderCloseTime();                                               // переменная t в качестве времени закрытия идентифицированного ордера,
            r=OrderType();                                                    // переменная r в качестве типа определенного ордера.
          }                                                                   // Хватит.
        }                                                                     // Достаточно.
      }                                                                       // Полно, я доволен!
    }                                                                         // Остановись!
  }                                                                           // Стой, ****!
  return(r);                                                                  // Остановка действия функции с выводом значения переменной r.
}                                                                             // Конец. 
.
В сей коде я не мог найти переменную, выдающую значение типа последнего, закрытого ордера.

Та - ак, дальше мне понятно, как делать разбор функций, почитаемого в здешних кругах, Игоря.
Можно я буду выкладывать свое понимание составляющих, а вы, как толковые программисты, будете корректировать мое понимание данных функций? ><
 
artmedia70:

У Игоря 1 - очень доступный для понимания код и логика. Много 2 - лишнего для универсальности, но всё же. Покажите что вам там 3 - не понятно, и я расскажу.

4 - OrderSelect() - выбирает ордер. Это первое, что нужно сделать при работе с ордерами.


Ответ по пунктам, простите.
1 - гений программирования?
2 - если честно, то лишнего ничего не бывает, кроме фекалий и прочих продуктов распада (откровенное мнение, готов начать дискутировать, но в другой теме :) ).
3 - теперь все понятно. :)
4 - так точно. Знаю. Я немного "оговорился" и набрал текст с функцией "OrderSend".

Спасибо вам за то, что способствовали созданию шаблона "Разбор "Функций - кирпичиков". :)
 
Sepulca:


Да к брокеру конечно)))

Терминалу пофигу.... Даст Вам последние известные данные...


К серверу обращаются только четыре функции. Открытие, модификация и закрытие (удаление) ордера
 
Link_x:
Ответ по пунктам, простите.
1 - гений программирования?
2 - если честно, то лишнего ничего не бывает, кроме фекалий и прочих продуктов распада (откровенное мнение, готов начать дискутировать, но в другой теме :) ).
3 - теперь все понятно. :)
4 - так точно. Знаю. Я немного "оговорился" и набрал текст с функцией "OrderSend".

Спасибо вам за то, что способствовали созданию шаблона "Разбор "Функций - кирпичиков". :)

Сперва надо ознакомиться с понятием - функция. А потом можно переходить к вопросу что они выполняют и как их использовать.
 
Подытожу!
Прежде чем думать о неспособности понять код, нужно "постараться разобрать телевизор".
О-у, насчет примера с ПК, телевизором, телефоном - очень хороший пример. 
Сейчас порассуждал о строении своего телевизора и пришел к выводу, 
что хорошо знаю, как устроен мой телевизор (года три назад "горел желанием" его разобрать, 
именно в тот момент, когда мои родители застали меня за разбиранием телевизора, 
я впервые получил доступ в интернет). 
 
Link_x:

Прекрасно! "Поехали"! :)

"Кирпичик под номером один".
Мое представление значений составляющих:
.
В сей коде я не мог найти переменную, выдающую значение типа последнего, закрытого ордера.

Та - ак, дальше мне понятно, как делать разбор функций, почитаемого в здешних кругах, Игоря.
Можно я буду выкладывать свое понимание составляющих, а вы, как толковые программисты, будете корректировать мое понимание данных функций? ><

Тип ордера в переменной r. В последнем операторе значение этой переменной присваивается самой функции, а значит сама эта переменная в принципе вам не нужна. Тип поcледнего закрытого ордера - это значение функции: например вы можете увидеть это значение, если выведете его на экран с помощью оператора Comment()

Comment("Typ=",GetTypeLastClosePos("", -1);

или в журнал с помощью оператора Print()

Print("Typ=",GetTypeLastClosePos("", -1);
 
evillive:

Заменить переменные МА на переменные индикатора в коде советника (все три комплекта):

потом заменить строки вызова МА на вызов J2JMA:


evillive, попробовал заменить как вы сказали, но видать даже для этого надо побольше знать, при компиляции выдает "53 error(s), 18 warning(s)", результат прилагаю. evillive, можно вас попросить сделать эти замены, если у вас будет время.
 
khorosh:

Тип ордера в переменной r. В последнем операторе значение этой переменной присваивается самой функции, а значит сама эта переменная в принципе вам не нужна. Тип поcледнего закрытого ордера - это значение функции: например вы можете увидеть это значение, если выведете его на экран с помощью оператора Comment()

или в журнал с помощью оператора Print()


Вот и пример практического использования пользовательской функции:
GetTypeLastClosePos

.
Спасибо.
Значит, для использования этой функции нужно применить ее наименование, а сама переменная "r" задается для определения значения данной функции!
Вот и маленькое открытие для меня! ^^
Снова спасибо, Юрий. :)


Для конечного уточнения, такое возможно:

if(GetTypeLastClosePos == OP_BUY)
?


Причина обращения: