Полезные функции от KimIV - страница 6

 
Lukyanov:
Просто может кому пригодиться. :-)
Не возражаю, если выложите... :-)
 
Здравствуйте
Подскажите, есть какая-нибудь "контора", которая предоставляла бы свой сервер для тестирования экспертов. То есть сгрузил к ним на сервер своего советника, где он тестируется в режиме "он лайн" на демо счете.
 
KimIV:

Внимание! В посте от 12.03.2008 07:24 я заменил вложение SetOrder.mq4

пробовал ваш код ну что то у меня неполучилось (может руки кривые :( ... ). При компиляции показивает очень много ошибок.
'Message' - function is not defined - что это такое?
'break' - 'break' or 'continue' used within some cycle only - что там неправильно с циклами?
'GetNameTF' - function is not defined - как ее дефинировать?
...итд. :(
так и не-смог разобраться. Если не трудно - помогите.

 
sasa999 писал (а):
'Message' - function is not defined - что это такое?
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Вывод сообщения в коммент и в журнал                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    m - текст сообщения                                                     |
//+----------------------------------------------------------------------------+
void Message(string m) {
  Comment(m);
  if (StringLen(m)>0) Print(m);
} 
sasa999 писал (а):
'break' - 'break' or 'continue' used within some cycle only - что там неправильно с циклами?

На break пока не обращайте внимания. Сначала разберитесь с описаниями функций.

sasa999 писал (а):
'GetNameTF' - function is not defined - как ее дефинировать?
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование таймфрейма                             |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    TimeFrame - таймфрейм (количество секунд)      (0 - текущий ТФ)         |
//+----------------------------------------------------------------------------+
string GetNameTF(int TimeFrame=0) {
  if (TimeFrame==0) TimeFrame=Period();
  switch (TimeFrame) {
    case PERIOD_M1:  return("M1");
    case PERIOD_M5:  return("M5");
    case PERIOD_M15: return("M15");
    case PERIOD_M30: return("M30");
    case PERIOD_H1:  return("H1");
    case PERIOD_H4:  return("H4");
    case PERIOD_D1:  return("Daily");
    case PERIOD_W1:  return("Weekly");
    case PERIOD_MN1: return("Monthly");
    default:         return("UnknownPeriod");
  }
}

Функцию ExistOrders ищите в этой теме. Я её выкладывал уже. ErrorDescription подключается директивой компилятора:

#include <stdlib.mqh>

Так, ещё осталась функция GetNameOP:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование торговой операции                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    op - идентификатор торговой операции                                    |
//+----------------------------------------------------------------------------+
string GetNameOP(int op) {
  switch (op) {
    case OP_BUY      : return("Buy");
    case OP_SELL     : return("Sell");
    case OP_BUYLIMIT : return("Buy Limit");
    case OP_SELLLIMIT: return("Sell Limit");
    case OP_BUYSTOP  : return("Buy Stop");
    case OP_SELLSTOP : return("Sell Stop");
    default          : return("Unknown Operation");
  }
}
 
KimIV:
sasa999 писал (а):
'Message' - function is not defined - что это такое?
sasa999 писал (а):
'break' - 'break' or 'continue' used within some cycle only - что там неправильно с циклами?

На break пока не обращайте внимания. Сначала разберитесь с описаниями функций.

sasa999 писал (а):
'GetNameTF' - function is not defined - как ее дефинировать?

Функцию ExistOrders ищите в этой теме. Я её выкладывал уже. ErrorDescription подключается директивой компилятора:

#include <stdlib.mqh>

Так, ещё осталась функция GetNameOP:


Такое ощущение, что надо выложить библиотеки (обе), и проводить разъяснительную работу. От библиотек не откажусь.
 
Спасибо - очень помогло, но опять другие проблеми... :(
сечас на все эти функции показивает - Function "хххххххх" is not referenced and will be removed from exp-file
может не там их вставил ... :( Надеюсь на вашу помошчь.
..трудно первокласнику в МQL4 :)
 
Vinin:
Такое ощущение, что надо выложить библиотеки (обе), и проводить разъяснительную работу. От библиотек не откажусь.

Скорее всего выложу... но не ранее, чем мы пройдёмся по всем функциям... а иначе для чего я тут? Выложил бы в кодебейс, люди бы поскачивали и забыли. Я сам такой :-) У меня куча чужого кода так и лежит нетронутой. А вот когда есть возможность прощупать, задать вопросы, это совсем другое дело.

ЗЫ. Мои файлы с префиксом test_ нормально компилируются и исполняются.

 
sasa999:
Спасибо - очень помогло, но опять другие проблеми... :(
сечас на все эти функции показивает - Function "хххххххх" is not referenced and will be removed from exp-file
может не там их вставил ... :( Надеюсь на вашу помошчь.
..трудно первокласнику в МQL4 :)
Посмотрите, как всё собрано воедино в файле test_SetOrder.mq4
 



если я правилно понял то заменив OrderSend на OrderModify

можно пользоватся при модификации ордера??
а также при закритии... ??

но как это объединить в одной функции что бы не повторятся?

еще...

if (mn<0 || OrderMagicNumber()==mn)

почему mn<0 ? разве Magic не может быть с отрицательным знаком?

 
sasa999 писал (а):
если я правилно понял то заменив OrderSend на OrderModify

можно пользоватся при модификации ордера??
а также при закритии... ??

но как это объединить в одной функции что бы не повторятся?

Позже будет функция для модификации

sasa999 писал (а):
еще...
if (mn<0 || OrderMagicNumber()==mn)
почему mn<0 ? разве Magic не может быть с отрицательным знаком?
может... но я в своих советниках применяю только положительный магик такого формата ГГГГММДД, например, 20080323. Это дата разработки советника.