[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 617

 
Подскажите пожалуйста, как узнать лот последней закрытой позиции ? Например: последняя позиция закрылась с тейком и мы хотим увеличить лот следующей позиции.
 
Vadimkin:
Подскажите пожалуйста, как в советнике объявить индикатор, наложенный на другой индикатор (например МА на RSI)?
только рассчитать явно, например с помощью iMAOnArray() или по своему собственному алгоритму.
 
david2:
Подскажите пожалуйста, как узнать лот последней закрытой позиции ? Например: последняя позиция закрылась с тейком и мы хотим увеличить лот следующей позиции.
int oht = OrdersHistoryTotal();
double last_lot;
OrderSelect(oht-1,SELECT_BY_POS,MODE_HISTORY);
if(NormalizeDouble(OrderClosePrice()-OrderTakeProfit(),Digits)==0) //ордер закрыт по тейкпрофиту
{
   last_lot = OrderLots();
   // ура
}
 
alsu:

Большое спасибо, но не понятно почему в скобках oht-1 а не oht.
 
david2:
Большое спасибо, но не понятно почему в скобках oht-1 а не oht.

первый элемент массива имеет номер 0, последний размер-1
 
alsu:

первый элемент массива имеет номер 0, последний размер-1
Ясно.
 
alsu:
только рассчитать явно, например с помощью iMAOnArray() или по своему собственному алгоритму.

Спасибо, буду пробовать.

Я попробовал подойти с другой стороны. Создал простенький кастом индикатор МА от RSI. Теперь нужно сформулировать условия для советника на открытие позиций по нему.

Например:

if (RedLine1>BlueLine1&&RedLine2<BluLine2) OP_BUY

if (RedLine1<BlueLine1&&RedLine2>BluLine2) OP_SELL

А вот как их объявить, не знаю. То есть:

double RedLine1 = iCustom(Symbol(), 0, "MARSI", ?, ?, ......, 1);

Не могли бы Вы глянуть. Ну или кто-нибудь посмотрите пожалуйста.

Файлы:
marsi.mq4  2 kb
 
Vinin:


iHigh(NULL, PERIOD_D1,1) - вчерашний максимум

iLow(NULL, PERIOD_D1,1) - вчерашний минимум

iOpen(NULL, PERIOD_D1,1) - вчерашнее открытие

iClose(NULL, PERIOD_D1,1) - вчерашнее закрытие

А возможно задать iхай, iлоу, iопен, и iзакрытие по конкретной дате, которую можно оперативно изменять в настройках индикатора?

extern int data = 08/03/2011

iOpen(NULL, 08/03/2011,1) -такое открытие?

 
Vadimkin:

Спасибо, буду пробовать.

Я попробовал подойти с другой стороны. Создал простенький кастом индикатор МА от RSI. Теперь нужно сформулировать условия для советника на открытие позиций по нему.

Например:

if (RedLine1>BlueLine1&&RedLine2<BluLine2) OP_BUY

if (RedLine1<BlueLine1&&RedLine2>BluLine2) OP_SELL

А вот как их объявить, не знаю. То есть:

double RedLine1 = iCustom(Symbol(), 0, "MARSI", ?, ?, ......, 1);

Не могли бы Вы глянуть. Ну или кто-нибудь посмотрите пожалуйста.


В вашем случае внешних параметров нет, поэтому вместо вопросиков ничего писать не надо:

double RedLine1 = iCustom(0, 0, "MARSI", индекс линии, номер бара);

Конкретнее,

double RedLine1 = iCustom(0, 0, "MARSI", 0, 1); - красная на 1 баре

double RedLine2 = iCustom(0, 0, "MARSI", 0, 2); - красная на 2 баре

double BlueLine1 = iCustom(0, 0, "MARSI", 1, 1); - синяя на 1 баре

double BlueLine2 = iCustom(0, 0, "MARSI", 1, 2); - синяя на 2 баре
 
alsu:

В вашем случае внешних параметров нет, поэтому вместо вопросиков ничего писать не надо:

double RedLine1 = iCustom(0, 0, "MARSI", индекс линии, номер бара);

Конкретнее,

double RedLine1 = iCustom(0, 0, "MARSI", 0, 1); - красная на 1 баре

double RedLine2 = iCustom(0, 0, "MARSI", 0, 2); - красная на 2 баре

double BlueLine1 = iCustom(0, 0, "MARSI", 1, 1); - синяя на 1 баре

double BlueLine2 = iCustom(0, 0, "MARSI", 1, 2); - синяя на 2 баре


Спасибо большое.
Причина обращения: