Как кодировать? - страница 215

 

Небольшая помощь в программировании

Привет всем!

Это мое первое сообщение!!!

Я уже около 3 месяцев пытаюсь запрограммировать советника на распознавание определенной свечной модели и открытие ордера на покупку или продажу по этой модели, но у меня ничего не получается!

Я не знаю, как размещать здесь картинки, поэтому мне придется описать это.

Для сигнала на покупку / сделки я пробовал программу:

Close[3] < Close[4],

Close[2] < Close[3],

High[2] < Open[3],

Low[1] > Low[2] и

Close[1] >= Open[3].

Для сигнала на продажу / сделки он противоположен сигналу на покупку.

Возможно, это очень просто, но я просто не могу этого сделать.

Есть ли где-то добрый и щедрый человек, который готов запрограммировать это для меня?

Спасибо

 
Cgage2491:
Привет всем,

Для сигнала на покупку / торговли я пробовал программу:

Close[3] < Close[4],

Close[2] < Close[3],

High[2] < Open[3],

Low[1] > Low[2] и

Close[1] >= Open[3].

Для сигнала на продажу / сделки он противоположен сигналу на покупку.

Спасибо

Привет Cgage....

Без вашего кода я не знаю, какие у вас переменные, но вы можете попробовать модифицировать это... это может сработать для вас.

bool BuyCondition = false ;

bool SellCondition = false ;

//--------- BuyCondition ----------

if (Close[3] < Close[4] && Close[2] < Close[3] && High[2] Low[2] && Close[1] >= Open[3]) BuyCondition = true ; else BuyCondition = false;

Для сигнала на продажу / сделки он противоположен покупке.

//--------- SellCondition ----------

if (Close[3] > Close[4] && Close[2] > Close[3] && High[2] > Open[3] && Low[1]< Low[2] && Close[1] <= Open[3]) SellCondition = true ; else SellCondition = false;

Удачи.

Роберт

 
cosmiclifeform:
Привет Cgage....

Без вашего кода я не знаю, какие у вас переменные, но вы можете попробовать модифицировать это... это может сработать для вас.

bool BuyCondition = false ;

bool SellCondition = false ;

//--------- BuyCondition ----------

if (Close[3] < Close[4] && Close[2] < Close[3] && High[2] Low[2] && Close[1] >= Open[3]) BuyCondition = true ; else BuyCondition = false;

Для сигнала на продажу / сделки он противоположен покупке.

//--------- SellCondition ----------

if (Close[3] > Close[4] && Close[2] > Close[3] && High[2] > Open[3] && Low[1]< Low[2] && Close[1] <= Open[3]) SellCondition = true ; else SellCondition = false;

Удачи.

Роберт

Спасибо за ответ.

Я пробовал что-то подобное, я перепробовал много вещей.

Проблемы, с которыми я сталкивался, были: несколько сделок на бар, сделки на каждом баре, не распознавание паттерна вообще и т.д.

Я понимаю логическую сторону вещей, но я не знаю, как это программировать.

Я пробовал вырезать и вставить из других индикаторов / советников, но я не могу заставить его делать то, что я хочу!

По сути, если логика условия покупки = true, то открываем сделку на покупку, а если логика условия продажи = true, то открываем сделку на продажу.

Любая помощь приветствуется.

 
Enforcer:
by OrderType( )

OP_BUY - позиция покупки,

OP_SELL - позиция на продажу,

OP_BUYLIMIT - лимит покупки отложенной позиции,

OP_BUYSTOP - отложенная позиция buy stop,

OP_SELLLIMIT - лимит продажи отложенной позиции,

OP_SELLSTOP - отложенная позиция sell stop.

for (int i = 0; i < OrdersTotal(); i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType() == OP_BUY) {...do some thing....}

if(OrderType() == OP_SELL) {...do other thing....}

}

[/PHP]

Приведенное выше решение является вашим решением. Вам нужно подсчитать существующие ордера, чтобы эксперт знал, что они существуют, и не продолжал создавать новые.

Cgage2491:

Проблемы, с которыми я сталкивался, были следующие: несколько сделок на бар, сделки на каждом баре, не распознавание паттерна вообще и т.д.

См. то, что я сказал выше. Можно также попробовать сделать примерно следующее:

[PHP]int i, ticket;

int total = OrdersTotal();

double totallongs=0, totalshorts =0;

for( i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS );

if ( OrderComment() == ExpertName )

{

int type = OrderType();

if (( OrderSymbol() == Symbol() && (type == OP_BUY ))) {totallongs=totallongs+1;}

if (( OrderSymbol() == Symbol() && (type == OP_SELL ))) {totalshorts=totalshorts+1;}

if (( OrderSymbol() == Symbol() && (type == OP_BUYLIMIT || OP_BUYSTOP ))) {totallongs=totallongs+1;}

if (( OrderSymbol() == Symbol() && (type == OP_SELLLIMIT || OP_SELLSTOP ))) {totalshorts=totalshorts+1;}

}

}
 

Спасибо, ребята,

Намного лучше, теперь он не торгует на каждом баре.

Мне удалось приблизиться к тому, что я хотел, но на данный момент он не находит паттерн, который я искал.

Думаю, нужно сделать несколько логических настроек.

 

Индикатор процента сопротивления

Кто-нибудь имеет или может закодировать индикатор процента сопротивления?

 

Как найти максимум и минимум в том месте, где находится мышь?

Привет, Гуру, я хотел бы, чтобы индикатор показывал мне, каков диапазон текущего бара/периода того места, где находится моя мышь, и комментировал это на экране.

Может ли кто-нибудь подсказать мне, как извлечь значения, найденные в строке состояния MT4, показывающие высокие и низкие значения.

Заранее спасибо.

С уважением,

Stardome

 
codersguru:
samahdi,

1- Могу ли я увидеть код и сказать, что вы хотите сделать?

2- Магический номер - это номер, который вы присваиваете своему заказу (заказам) в качестве ссылки, позволяющей вам различать разные заказы.

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

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

Не могли бы вы помочь мне добавить функцию "Time to trade" в этот замечательный советник. Я должен иметь возможность устанавливать "время торговли" в советнике. Пожалуйста, закодируйте это для меня. Я прикрепил советник. Спасибо.

Файлы:
 

Помогите отредактировать советника!

newdigital:
Я знаю только то, что в большинстве случаев это не помогает.

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

Не могли бы вы помочь мне добавить функцию "Время для торговли" в этот замечательный советник. Я должен иметь возможность устанавливать время торговли в советнике. Пожалуйста, сделайте это для меня. Я прикрепил советник. Спасибо.

Файлы:
 

Получить исходный заказ из истории

Привет всем,

Возможно ли получить первоначальное значение стоп-лосса для ордера, который был изменен несколько раз (т.е. трейлинг-стоп)?

Спасибо,

Крис