今年参加了了ATC2010由于是第一次参加,在资金管理方面出了一些问题,参数优化过程中也有一个问题没弄好,所以现在的成绩不算好, 但我有信心明年参加取得好成绩,大家想参加的报个名,咱们组团参加,这样可以在Mql5语言方面进行一些交流,策略方面大家也可以提一下自己的想法。 另外还有一个好处,就是我们可以进行策略布局,保证尽可能收益最高者在我们团队,以打破每年老毛子们垄断第一的尴尬境地。 同意我提议的,准备明年参加的举下手啊,可以建个群什么的交流。
提个建议,参加这种竞赛,除了楼主提到的团体策略布局之外,最好多搞些短线系统,在风险控制方面放得较宽,最好是冒最大的风险。不成功便成仁。 由于目的不同,比赛的策略和日常的交易策略是截然不同的,甚至是相反的。比赛的目的就是拿到名次,日常的交易是使自己长远地活得更久,赚钱是你系统的副产品,不用刻意追求,它自会来找你。
ea比赛版本:http://championship.mql5.com/2010/en/users/avoitenko/discussion 他公布的全版:http://fxmts.net/files/
第10名的2010比赛介绍:http://championship.mql5.com/2010/en/users/Manov 同时可以参看他的2008年的比赛:http://championship.mql4.com/2008/users/Manov/reports 他写的一篇文章:http://articles.mql4.com/471
bobsley 1 //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж // Грааль_1.mq4. // Используется в качестве примера в статье "Мой первый Грааль". // Сергей Ковалёв, Днепропетровск, sk@mail.dnepr.net, ICQ 64015987, http://autograf.dp.ua/. //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж extern int TP = 100; // ТэйкПрофит ордера extern int SL = 100; // СтопЛосс ордера extern int lim= 1; // Дистанция возврата курса extern int prodvig=3; // Дистанция продвижения курса extern double Prots= 10; // Процент от свободных средств //-------------------------------------------------------------------------------------------- int total, // Количество лотов bb=0, // 1 = факт налиия ордера Buy ss=0; // 1 = факт налиия ордера Sell //-------------------------------------------------------------------------------------------- double max, // Максимальная цена на горке (абс) min, // Минимальная цена во впадине(абс) lmax, // Пороговая цена, после преодоления // которой рассматриваем продажу(абс) lmin, // То же для покупки Lot; // Количество лотов //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж int start() { //============================================================================================ total=OrdersTotal(); // Количество лотов if (total==0) // Если ордеров нет, .. { bb=0; // .. то нет баёв ss=0; // .. то нет селов } if (max<Bid) max=Bid; // Считаем максим цену на горке if (min>Ask) min=Ask; // Считаем миним цену во впадине //------------------------------------------------------------- Цена разворачивается вниз ---- if (((max-Bid)>=lim*Point)&&(Bid>lmax )) // Разворот на высовком уровне { for (int i=total;i>=0;i--) // По всем ордерам { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);// Закрываем бай bb=0; // Баёв больше нет } } Strateg(1); // Открывающая функция } //------------------------------------------------------------ Цена разворачивается вверх ---- if (((Ask-min)>=lim*Point)&&(lmin>Ask )) // Разворот глубоко внизу { for (i=total;i>=0;i--) // По всем ордерам { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);// Закрываем селл ss=0; // Селлов больше нет } } Strateg(2); // Открывающая функция } //============================================================================================ return; } //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж void Strateg (int vv) // Открывающая функция { //============================================================================================ if (vv==1 && ss==0) // Селловая ситуация и селлов нет { OrderSend(Symbol(),OP_SELL,Lots(),Bid,3,Bid+SL*Point,Bid-TP*Point,"",0,0,Red);// Откр ss=1; // Теперь есть селл } //-------------------------------------------------------------------------------------------- if (vv==2 && bb==0) // Баёвая ситуация и баёв нет { OrderSend(Symbol(),OP_BUY, Lots(),Ask,3,Ask-SL*Point,Ask+TP*Point,"",0,0,Blue);// Откр bb=1; // Теперь есть бай } //-------------------------------------------------------------------------------------------- lmax=Ask+prodvig*Point; // Переопределяем новые пороговые .. lmin=Bid-prodvig*Point; // .. уровни для откр и закр //============================================================================================ return; } //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж double Lots() // Вычисление лотов { //============================================================================================ Lot=NormalizeDouble(AccountEquity()*Prots/100/1000,1);// Вычисляем колич. лотов double Min_Lot = MarketInfo(Symbol(), MODE_MINLOT); // Минимально допустимая стоим. лотов if (Lot == 0 ) Lot = Min_Lot; // Для теста на постоян. миним. лотах //============================================================================================ return(Lot); } //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж /*