Сен 8

Моя программа для торговли на рынке Forex с исходником

Хотите вложить 1500 баксов или центов и через 16 месяцев получить 6902, т.е. чистую прибыль 4543 баксов или центов, соответственно? Хотеть оно конечно не вредно, а пока можете посмотреть на результаты работы моей программы, которая отторговала именно так. Исходник на MQL прилагается. Звезды сложились так, что по просьбе одного хорошего человека мне было предложено для другого хорошего человека написать программу для регистрации в фонде алгоритмов и программ. Пакет с материалами Вы можете скачать по этой ссылке http://www.mctrewards.ru/files/profit-macd.zip 301 Кб. Ниже текст программы и результаты тестирования в тестере стратегий. На разработку программы тестирование и описание у меня ушел практически целый день. Возможно, что некое рациональное зерно в этой программе все же есть, если ее соответствующим образом доработать. Для учебных целей программа подходит вполне и на демо счет можно поставить при желании. Ставить на реальный не стоит.
Через некоторое время буду регистрировать и несколько своих программ для торговли, так как время идет и для защиты необходимо иметь достаточно большое число самых разных публикаций, статей, регистраций и прочего. Замечу, что среди этих работ должны быть не только профилирующие, но и для, так сказать, массы. Регистрация программы в фонде алгоритмов примерно 2500 руб., в ОФЕРНИО около 700 руб. Учитывая накладные расходы на пересылку материалов, госпошлину. Для не основных работ вполне допустима регистрация в соавторстве. Мне такой вариант интересен, так как позволяет уменьшить расходы в два раза. И так по основным публикациям будут порядочные расходы. Итак, предложение следующее, ваша (возможно моя, но ваша лучше) программа для торговли на Forex (индикатор, скрипт, описание торговой стратегии для регистрации в ОФЕРНИО) и оплата половины расходов. С моей стороны возня с оформлением материала (в том числе, редакция, описание, возможно коррекция программ) и передача его на регистрацию. После прохождения процедуры регистрации получаете свидетельство или сертификат. Если кому интересно предложение и готовы обсудить конкретные шаги – пишите.
Ниже выписки из документов по данной программе и ее текст.
Кого интересует какой монитор купить бухгалтеру, можете посмотреть эту ссылку.

Грааль :)

//+——————————————————————
//|                                                  Profit-macd.mq4
//|    9 сентября 2012 г.       Copyright 2012, ALT
//|                                              http://www.fx-fx.ru
//+——————————————————————
#property copyright «Copyright 2012, ALT»
#property link      »http://www.fx-fx.ru»
double depostart; // Начальное значение депозита до цикла торговли
double tdepo; // Текущее значение депозита
extern  double lot=0.01; // Начальное значение лота, с которого начинается торговля
double lots; // Текущее значение лота
double maxlots=0.5; // Максимальное значение лота
double rez1,rez2,rez3,rez4,rez5; // Значения функции iMACD с разными параметрами
double signal;
double SL1,TP1;
int flagorder=0; // Если 0 – нет открытого ордера, если 1 – есть, то торгуем
int order=0; // Номер ордера. 0 – нет открытого ордера
extern int p1 = 15;
extern int p2 = 29;
extern int p3 = 10;
extern int magic = 1;
extern double kk=1.8; // Домножаем следующий лот на это значение
extern double TP=340; // Take Profit – фиксация прибыли в пунктах
extern double SL=110; // Stop Loss   – фиксация убытков в пунктах
bool REZ; // Результат закрытия или удаления ордера
double punkt;
int step=0; // Количество проигрышей подряд
int k,proverka;
//+——————————————————————+
//| expert initialization function
//+——————————————————————+
int init()
{
//—-
depostart=AccountBalance(); //  Баланс счета на начало торговли
Print(«Баланс счета на начало торговли = «,depostart);
Comment(«Баланс счета на начало торговли = «,depostart);
if (step==0) {lots=lot;
}
if (Digits == 3 || Digits == 5) punkt = 10.0 * Point;
else punkt = Point;
return(0);
}
//+——————————————————————+
//| expert deinitialization function
//+——————————————————————+
int deinit()
{
//  Баланс счета на конец торговли
Print(«Баланс счета на конец торговли = «,AccountBalance());
Comment(«Баланс счета на конец торговли = «,AccountBalance());
return(0);
}
//+——————————————————————+
//| expert start function
//+——————————————————————+
int start()
{
tdepo=AccountBalance(); //  Баланс счета
if (depostart<tdepo) {  depostart=tdepo;
step=0; lots=lot;
}
//===================================================
proverka=0;
for (k=0; k< OrdersTotal(); k++) {
OrderSelect(k, SELECT_BY_POS, MODE_TRADES);
if (OrderType()==OP_BUY || OrderType()==OP_SELL )
proverka=proverka+1;
}
if (proverka==0)
{   flagorder=0; order=0; }
//==========================================
rez1 = iMACD(NULL, 0, p1, p2, p3, PRICE_OPEN, MODE_MAIN, 0);
rez2 = iMACD(NULL, 0, p1, p2, p3, PRICE_CLOSE, MODE_MAIN, 1);
rez3 = iMACD(NULL, 0, p1, p2, p3, PRICE_CLOSE, MODE_SIGNAL, 1);
rez4 = iMACD(NULL, 0, p1, p2, p3, PRICE_CLOSE, MODE_MAIN, 2);
rez5 = iMACD(NULL, 0, p1, p2, p3, PRICE_CLOSE, MODE_SIGNAL, 2);
signal=pusk(rez1,rez2,rez3,rez4,rez5);
if(signal==1&&flagorder==0) Comment(«\n Сигнал на покупку – 1 «);
if(signal==2&&flagorder==0) Comment(«\n Сигнал на продажу – 2 «);
if(signal==0&&flagorder==0) Comment(«\n Ждем сигнал на покупку или продажу – 0″);
/* ПРОДАЕМ */
if (signal==2&&flagorder==0)
{
SL1=Ask+SL*punkt;
TP1=Ask-TP*punkt;
if (step>0) lots=lots*kk;
if (lots>maxlots) lots=lot;
order = OrderSend(Symbol(), OP_SELL, lots, Bid, 3,  SL1, TP1 , » profit-macd», magic, 0, Red);
if (order>0) {Comment(«\n Открыт ордер на продажу «,order,» лот «,lots);
Print(» Открыт ордер на продажу «,order,» лот «,lots);
flagorder=1; step=step+1;
}
}
/* ПОКУПАЕМ */
if (signal==1&&flagorder==0)
{
SL1=Bid-SL*punkt;
TP1=Ask+TP*punkt;
if (step>0) lots=lots*kk;
if (lots>maxlots) lots=lot;
order = OrderSend(Symbol(), OP_BUY, lots, Ask, 3, SL1,TP1 , » profit-macd», magic, 0, Blue);
if (order>0) {Comment(«\n Открыт ордер на покупку «,order,» лот «,lots);
Print(» Открыт ордер на покупку «,order,» лот «,lots);
flagorder=1; step=step+1;
}}
return(0);
}
//+——————————————————————
int pusk(double rez1, double rez2, double rez3, double rez4, double rez5){
if ( rez1 < 0.0 && rez2 > rez3 && rez4 < rez5 ) return (1); /* Сигнал ПОКУПАТЬ   1 return (1) оригинал */
if ( rez1 > 0.0 && rez2 < rez3 && rez4 > rez5 ) return (2); /* Сигнал ПРОДАВАТЬ  2 return (2) оригинал */
return(0);
}

РЕФЕРАТ

Авторы: Фамилия Имя Отчество

Правообладатели: Фамилия Имя Отчество

Программа: Profit-macd

Аннотация:

Программа предназначена для торговли на рынке Forex по валютной паре евро-доллар (EurUsd). Модель разработана на языке программирования торговых стратегий MetaQuotes Language 4 для  терминала МТ4.

Входными данными для программы являются: начальное значение лота, с которого начинается торговля (от 0.01 лота); максимально допустимое значение лота; коэффициент увеличения следующего лота, если текущий ордер был закрыт с убытком;  число пунктов, после прохождения которых, выполняется фиксация прибыли путем закрытия ордера; число пунктов, после прохождения которых, выполняется фиксация убытка путем закрытия ордера.

Выходные данные: значение баланса счета на начало торговли;  информация о сигнале на покупку; информация о сигнале на продажу; информация об ожидании сигнала на покупку или продажу; открытие ордера на продажу;  открытие ордер на покупку; текущая информация о состоянии открытого ордера;  баланс счета на конец торговли.

Программа может использоваться для торговли на рынке Forex, а так же в учебном процессе при освоении дисциплин, связанных с изучением торговых стратегий на рынке Forex, обменными операциями и торговлей валютой, в том числе в качестве иллюстрации торговой стратегии использующий принцип мартингейла и показания торгового индикатора iMACD.

Тип ЭВМ: IBM PC Pentium и выше

Язык: MetaQuotes Language 4 (Version: 4.0 Build 432)

ОС: Windows XP и выше

Объём  программы: 5,12

Поделитесь статьей со своими друзьями
Общайтесь со мной:
comments: Closed

Comments are closed.