Советники: Эксперт "Торговля в канале"

 

Эксперт "Торговля в канале":

Эксперт предназначен для полуавтоматической торговли внутри равноудалённого торгового канала как по тренду, так и против тренда.

Author: Владимир Корякин

 
Savl:
а второй файл куда?

Второй файл - компилированная версия первого, должен находиться в той же папке, что и первый. Специально туда его можно не помещать, а просто скомпилировать первый файл, а заодно проверить его на наличие/отсутствие ошибок при компиляции.
 

Спасибо)

автор молодец) идея отличная) +10

 

Можно ли внести изменения в код что бы выбирать количество лотов открытия позиции и почему не всегда при пересечении линий канала подается сигнал на открытие позиции?

 

В TradeChannel_v_3.mql следует изменить код в 3 строке блока:

//------- П О К А Ж Е М Г Д Е Б У Д У Т З А К Р Ы В А Т Ь С Я О Р Д Е Р А --------
if (d<0) zona1 = sign*(DELTA+swap)*Point;
else zona1 = sign*DELTA*Point;
double lrc1=p1+d-zona1; double lrc2=p2+d-zona1; // Параметры цены для
ObjectCreate("LineRealClose",OBJ_TREND,0,t1,lrc1,t2,lrc2);
ObjectSet("LineRealClose",OBJPROP_STYLE,STYLE_DASH);
ObjectSet("LineRealClose",OBJPROP_WIDTH,1);
if ((trend && potrendu)||(!trend && !potrendu)) ObjectSet("LineRealClose",OBJPROP_COLOR,DeepPink);
else ObjectSet("LineRealClose",OBJPROP_COLOR,Lime);
double LineRealClose = ObjectGetValueByShift("LineRealClose",0); // текущее значение линии

Вместо:

double lrc1=p1+d-zona1; double lrc2=p2+d-zona1; // Параметры цены для

Нужно написать:

double lrc1=p1+d-zona1*FACTOR; double lrc2=p2+d-zona1*FACTOR; // Параметры цены для

Иначе FACTOR работать не будет.

 
VVP17:

Можно ли внести изменения в код что бы выбирать количество лотов открытия позиции и почему не всегда при пересечении линий канала подается сигнал на открытие позиции?


1. Для того, чтобы ордера открывались они должны соответствовать требованиям брокера.

2. Для того, чтобы сделать величину лота произвольной величиной нужно:

А. Сделать переменную Lot внешней переменной, дописав:

extern double Lot = ?.????;

в голове программы.

Б. Отменить все присваивания переменной Lot значения функции double GetLot(int MaxRisk); поискав эти присваивания в основном теле программы, строки типа:

Lot=GetLot(MaxRisk);

 

Благодарности:

Выражаю благодарнрсть Александру Парнюк, за его "Уроки..." на "MQL для тебя". Его библиотека mylib.mq4 полностью вошла в мой программный код.

 

Благодарю! Это лучшее, что я нашел из экспертов.

 
VVP17:

Можно ли внести изменения в код что бы выбирать количество лотов открытия позиции и почему не всегда при пересечении линий канала подается сигнал на открытие позиции?


... Линия открытия ордеров (она же основная линия канала) и вспомогательная линия (прочерченная пунктиром) при открытии ордеров типа BUY разведены на расстояние Delta+swap, где swap=Ask-Bid, поэтому при пересечении ценой Bid пунктирной линии создаётся впечатление касания зоны открытия ордеров. Дождитесь, когда этой линии коснётся цена Ask (по которой Вы покупаете) и ордер откроется.
 
###########################################################

Дискуссия на странице: "Улучшенный эксперт 'Торговля в канале'"

###########################################################