Сообщество Экспертописателей - страница 11

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

серьезно, для новичков на рынке это то - что надо !, аккуратно, информативно, теперь дело за серьезными наворотами.
 
Спасибо. Постоянно думаю, чего сделать ещё...
предложения по доработке принимаются вне очереди =)
 
Предлагаю обсудить такую тему:
насколько актуальна торговля по нескольким Сиволам и/или ТаймФреймам в рамках одного эксперта?

сейчас сижу и думаю - выкладывать ли мне symbol_lib и шаблон эксперта, предназначенные именно для этого =)
и думаю, что такой необходимости нет... если торговля будет по разным счетам - всё равно придёться запускать несколько терминалов, а если по одному - то просто несколько окон открыть. И путаницы меньше, вроде бы...

Интересно будет выслушать мнения и аргументы к ним ;)


Тема интересная, особенно если есть возможность торговать КРУГЛОСУТОЧНО, (выделенка или ADSL и "сервер").
Я не програмист, но реализовал торговлю по нескольким парам, саму тему, индикатор взял для чистоты эксперимента, понятно, чтоусловия торговли каждый выберет сам. Единственная загвоздка, эксперт должен проверять есть ли ордера и есть ли они по проверяемой паре, извини за каламбур, с этим я запарился. понял, что рукопашные ордера эксперт за свои не признает, нужно вставлять "магическое число" это так?


//----------------Есть ли ордера по паре vl-----------------------


int total=OrdersTotal();
int n=0;
Print ("Всего ордеров==",total);
if (total>0)
{for (cnt=0;cnt>total;cnt++)
{OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
{if(OrderSymbol()==vl)
{n++; return(0);
}
}
}
}
//Print("NNN==",n," ",vl);
Print("ШАГ==",cnt," ","Symbol", vl," ","Orders==",n);
//---------------------------------------------

Это кусок кода, который не работает, подскажи, с высот разума серьезно програмиста, в чем "косяк"
 
тут нет "серьёзных программистов" =) тут самоучки в основном )
да, надо при установке ордера присваивать ему MagicNumber, а потом после ордерселект проверять - if ( OrderMagicNumber() == _MagicNumber ) { тогда что-то делать с ордером.
Надо, наверное, самому "дров наломать" чтоб понять, как работает ;)

Попытаюсь облегчить тебе жизнь - ф-ция _MagicNumber (ВНИМАТЕЛЬНО: если нужной пары нет в списке, мейджик будет генерироваться неоригинальный)
/////////////////////////////////////////////////////////////////////////////////
/**/ int _MagicNumber( int Expert_Id, string _Symbol, int _Period )
/////////////////////////////////////////////////////////////////////////////////
// Ф-ция генерирует MagicNumber, уникальный для связки Expert_Id - _Symbol - _Period.
// Expert_Id должен быть максимум четырёхзначный (т.е. <= 9999)
// Полученый MagicNumber будет 6-ти или 7-мизначный (в зависимости от Символа) и будет выглядеть так:
// SSPEEEE, где SS - это код символа (от 1 до 71), P - это код периода (от 1 до 8) и EEEE - Expert_Id (от 1 до 9999)
// 
// Таким образом, даже с одинаковым Expert_Id эксперты, работающие на разных Символах/ТФ будут использовать разные MagicNumber.
// Например, при Expert_Id = 1230, _Symbol = GBPUSD и _Period = PERIOD_H1,  MagicNumber будет 1141230
// А этот же эксперт, но на графике с периодом PERIOD_W1 будет иметь MagicNumber = 1181230
// Соответственно, если символ графика будет EURAUD, MagicNumber будет 141230
//
// т.е. Expert_Id есть смысл менять только если два эксперта работают на одном символе и одном ТФ
/////////////////////////////////////////////////////////////////////////////////
{
	int Period_Id = 9;
	switch ( _Period )
	{
		case PERIOD_MN1: Period_Id = 8; break;
		case PERIOD_W1:  Period_Id = 7; break;
		case PERIOD_D1:  Period_Id = 6; break;
		case PERIOD_H4:  Period_Id = 5; break;
		case PERIOD_H1:  Period_Id = 4; break;
		case PERIOD_M15: Period_Id = 3; break;
		case PERIOD_M5:  Period_Id = 2; break;
		case PERIOD_M1:  Period_Id = 1; break;
		default: Print( "trade_lib&info_lib - _MagicNumber( ", Expert_Id, ", ", _Symbol, ", ", _Period, " ) - Invalid Period! Function shall reurn 0!" ); return(0);
	}
	Period_Id *= 10000;
	
	int Symbol_Id = 99;
// forex
	if ( _Symbol == "AUDUSD" ) { Symbol_Id =  1; }
	if ( _Symbol == "CHFJPY" ) { Symbol_Id =  2; }
	if ( _Symbol == "EURAUD" ) { Symbol_Id =  3; }
	if ( _Symbol == "EURCAD" ) { Symbol_Id =  4; }
	if ( _Symbol == "EURCHF" ) { Symbol_Id =  5; }
	if ( _Symbol == "EURGBP" ) { Symbol_Id =  8; }
	if ( _Symbol == "EURJPY" ) { Symbol_Id =  7; }
	if ( _Symbol == "EURUSD" ) { Symbol_Id =  6; }
	if ( _Symbol == "GBPCHF" ) { Symbol_Id =  9; }
	if ( _Symbol == "GBPJPY" ) { Symbol_Id = 10; }
	if ( _Symbol == "GBPUSD" ) { Symbol_Id = 11; }
	if ( _Symbol == "USDCAD" ) { Symbol_Id = 12; }
	if ( _Symbol == "USDCHF" ) { Symbol_Id = 13; }
	if ( _Symbol == "USDJPY" ) { Symbol_Id = 14; }

// stock
	if ( _Symbol == "GOLD"   ) { Symbol_Id = 15; }

//cfd
	if ( _Symbol == "#AA"    ) { Symbol_Id = 16; }
	if ( _Symbol == "#AIG"   ) { Symbol_Id = 17; }
	if ( _Symbol == "#AXP"   ) { Symbol_Id = 18; }
	if ( _Symbol == "#BA"    ) { Symbol_Id = 19; }
	if ( _Symbol == "#C"     ) { Symbol_Id = 20; }
	if ( _Symbol == "#CAT"   ) { Symbol_Id = 21; }
	if ( _Symbol == "#DD"    ) { Symbol_Id = 22; }
	if ( _Symbol == "#DIA"   ) { Symbol_Id = 23; }
	if ( _Symbol == "#DIS"   ) { Symbol_Id = 24; }
	if ( _Symbol == "#EK"    ) { Symbol_Id = 25; }
	if ( _Symbol == "#GE"    ) { Symbol_Id = 26; }
	if ( _Symbol == "#GM"    ) { Symbol_Id = 27; }
	if ( _Symbol == "#HD"    ) { Symbol_Id = 28; }
	if ( _Symbol == "#HON"   ) { Symbol_Id = 29; }
	if ( _Symbol == "#HPQ"   ) { Symbol_Id = 30; }
	if ( _Symbol == "#IBM"   ) { Symbol_Id = 31; }
	if ( _Symbol == "#INTC"  ) { Symbol_Id = 32; }
	if ( _Symbol == "#IP"    ) { Symbol_Id = 33; }
	if ( _Symbol == "#JNJ"   ) { Symbol_Id = 34; }
	if ( _Symbol == "#JPM"   ) { Symbol_Id = 35; }
	if ( _Symbol == "#KO"    ) { Symbol_Id = 36; }
	if ( _Symbol == "#MCD"   ) { Symbol_Id = 37; }
	if ( _Symbol == "#MMM"   ) { Symbol_Id = 38; }
	if ( _Symbol == "#MO"    ) { Symbol_Id = 39; }
	if ( _Symbol == "#MRK"   ) { Symbol_Id = 40; }
	if ( _Symbol == "#MSFT"  ) { Symbol_Id = 41; }
	if ( _Symbol == "#PFE"   ) { Symbol_Id = 42; }
	if ( _Symbol == "#PG"    ) { Symbol_Id = 43; }
	if ( _Symbol == "#QQQ"   ) { Symbol_Id = 44; }
	if ( _Symbol == "#SBC"   ) { Symbol_Id = 45; }
	if ( _Symbol == "#SPY"   ) { Symbol_Id = 46; }
	if ( _Symbol == "#T"     ) { Symbol_Id = 47; }
	if ( _Symbol == "#UTX"   ) { Symbol_Id = 48; }
	if ( _Symbol == "#VZ"    ) { Symbol_Id = 49; }
	if ( _Symbol == "#WMT"   ) { Symbol_Id = 50; }
	if ( _Symbol == "#XOM"   ) { Symbol_Id = 51; }

//futures
	if ( _Symbol == "#CH5"   ) { Symbol_Id = 52; }
	if ( _Symbol == "#CK5"   ) { Symbol_Id = 53; }
	if ( _Symbol == "#CLG5"  ) { Symbol_Id = 54; }
	if ( _Symbol == "#CLH5"  ) { Symbol_Id = 55; }
	if ( _Symbol == "#CLJ5"  ) { Symbol_Id = 56; }
	if ( _Symbol == "#ENQH5" ) { Symbol_Id = 57; }
	if ( _Symbol == "#EPH5"  ) { Symbol_Id = 58; }
	if ( _Symbol == "#GOLDG5") { Symbol_Id = 59; }
	if ( _Symbol == "#GOLDJ5") { Symbol_Id = 60; }
	if ( _Symbol == "#NGH5"  ) { Symbol_Id = 61; }
	if ( _Symbol == "#NGJ5"  ) { Symbol_Id = 62; }
	if ( _Symbol == "#SH5"   ) { Symbol_Id = 63; }
	if ( _Symbol == "#SK5"   ) { Symbol_Id = 64; }
	if ( _Symbol == "#SLVH"  ) { Symbol_Id = 65; }
	if ( _Symbol == "#WH5"   ) { Symbol_Id = 66; }
	if ( _Symbol == "#WK5"   ) { Symbol_Id = 67; }

//index
	if ( _Symbol == "_DJI"   ) { Symbol_Id = 68; }
	if ( _Symbol == "_NQ100" ) { Symbol_Id = 69; }
	if ( _Symbol == "_NQCOMP") { Symbol_Id = 70; }
	if ( _Symbol == "_SP500" ) { Symbol_Id = 71; }

	if ( Symbol_Id == 99 ) { Print( "trade_lib&info_lib - _MagicNumber( ", Expert_Id, ", ", _Symbol, ", ", _Period, " ) - Invalid Symbol! Function shall reurn 0!" ); return(0); }
	Symbol_Id *= 100000;
	
	return(Expert_Id + Period_Id + Symbol_Id);
}
 
[quote]тут нет "серьёзных программистов" =) тут самоучки в основном )
[qoute]
Понял, спасибо за MN, огромное отдельное спасибо за библиотеку, буду пробовать