[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 228

 
alsu >>:

потомушто iHighest работает только с таймсериями. Для остальных массивов аналог ArrayMaximum

Значит придётся маяться с массивами :( Спасибо за помощь!

 

Здравствуйте!!!

Подскажите пожалуйста как в пользовательских индикаторах при их вызове реализовать меню "Параметры"?

То есть создавать внешние переменные и вводить их значения в меню "входные параметры" я умею, но хочется создать меню именно как у зашитых индикаторов с подменой переменных и русскими пояснениями что за значение вводим, а не просто лицезреть бездушное имя переменной и помнить какое число как кодируется в теле программы (так к примеру "применить к" в самом коде индикатора это целое число которое проверяется по условию switch, а мы выбираем из списка "open, close, и т.д")...

 

Здравствуйте, помогите плз не могу понять... Есть советник, работает по сигналам осциллятора, открывает позиции после пересечения нуля. Надо заставить его открывать позу когда текущий бар закрылся и сигнал сформировался, а то болтается туду-сюда, в минуту может открыть и закрыть позицию несколько раз :) пока сигнал не устаканится.

вот такой код:


extern double Lot = 0.1;
extern double Per = 14;
bool gi_84 = TRUE;
int gi_88 = 366;
double gd_92 = 0.02;
double gd_100 = 0.2;
int g_period_108 = 14;
int gi_112 = 50;
int g_slippage_116 = 0;



void start() {
int l_cmd_52;
int l_ticket_56;

string l_symbol_0 = Symbol();
double l_isar_8 = iCustom(NULL,0,"daytrend-t01",Per,0,0);
double l_isar_9 = iCustom(NULL,5,"daytrend-t01",Per,0,0);
int l_cmd_40 = -1;
int l_ord_total_44 = OrdersTotal();
Lot = MathMax(Lot, MarketInfo(l_symbol_0, MODE_MINLOT));
for (int li_48 = l_ord_total_44; li_48 > 0; li_48--) {
if (OrderSelect(li_48 - 1, SELECT_BY_POS) == TRUE) {
l_cmd_52 = OrderType();
if (OrderSymbol() != l_symbol_0 || l_cmd_52 < OP_BUY || l_cmd_52 > OP_SELL) continue;
l_ticket_56 = OrderTicket();
RefreshRates();
if (l_cmd_52 < OP_SELL) {
if (l_isar_8 > 0) {
while (OrderClose(l_ticket_56, Lot, Bid, g_slippage_116) == 0) FunError(gi_112);
l_cmd_40 = -1;
continue;
}
} else {
if (l_isar_8 < 0 ) {
while (OrderClose(l_ticket_56, Lot, Ask, g_slippage_116) == 0) FunError(gi_112);
l_cmd_40 = -1;
continue;
}
}
l_cmd_40 = l_cmd_52;
}
}
if (l_cmd_40 < OP_BUY && g_period_108 == 0 || DayOfYear() < gi_88) {
RefreshRates();
if (l_isar_8 < 0 && l_isar_9 < 0 ) while (OrderSend(l_symbol_0, OP_BUY, Lot, Ask, g_slippage_116, 0, 0) == 0) FunError(gi_112);
else
if (l_isar_8 > 0 && l_isar_9 > 0 ) while (OrderSend(l_symbol_0, OP_SELL, Lot, Bid, g_slippage_116, 0, 0) == 0) FunError(gi_112);
}
}

void FunError(int ai_0) {
Sleep(ai_0);
RefreshRates();
}

void deinit() {
}
 
nikkola >>:

Автора спроси.

 
TheXpert >>:

Автора спроси.

Найти бы его :)

 
день добрый, грузил историю с 1999-го, выскакивает такая ошибка

2009.09.15 15:49:05	HistoryBase: not enough memory 'USDJPY1' [3231513 bars]
2009.09.15 15:49:05	Memory handler: cannot allocate 142197836 bytes of memory


это какой памяти не хватает, кто-нить знает, что это за ошибка вообще такая?
 
nikkola >>:

Найти бы его :)

Ищи, нечего здесь декомпиленным кодом сверкать и на халявную помощь надеяться.

 
NEKSUS_ >>:
это какой памяти не хватает, кто-нить знает, что это за ошибка вообще такая?

Оперативки, как лечится не помню, но уменьшение глубины истории должно помочь.

 
TheXpert >>:

Ищи, нечего здесь декомпиленным кодом сверкать и на халявную помощь надеяться.

Я не декомпилил, он в таком виде мне достался...

 
TheXpert >>:

уменьшение глубины истории должно помочь.

в этом то и вся проблема, низя, для системы нужна вся история

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