[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 698
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
копирайт
благодарю
Сново возвращаюсь к вопросу заданному мной https://forum.mql4.com/ru/15972/page693 - тут, передача параметров между индикаторами и индикаторами - экспертами. Предложенный вариант использования глобальных переменных конечно решает этот вопрос частично, но возник другой вопрос! Согласно описанию глобальных переменных ......... GV-переменная может иметь только тип double, а как же тогда узнать эксперту при получении значения глобальной переменной, что переменная получена с определенного символа и определенного таймфрема ?
Закодировать символы. Хотя можно использовать для этого и имена переменных, например EUSRUSD_H1_Var1
Сделан в программе Горандо, с добавлением Вашего мартина.
//+------------------------------------------------------------------+
//| Copyright 2005, Gordago Software Corp. |
//| http://www.gordago.com/ |
//| version 2.0 |
//+------------------------------------------------------------------+
void OpenBuy() {
double dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lot;
if (isLossLastPos(NULL, -1, MAGIC))
Lots_New *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lots_New = Lot;
if (dBuyStopLossPoint > 0)
dStopLoss = Bid-dBuyStopLossPoint*Point;
if (dBuyTakeProfitPoint > 0)
dTakeProfit = Bid + dBuyTakeProfitPoint * Point;
int numorder = OrderSend(Symbol(), OP_BUY, Lots_New, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy);
if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}
void OpenSell() {
double dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lot;
if (isLossLastPos(NULL, -1, MAGIC))
Lots_New *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lots_New = Lot;
if (dSellStopLossPoint > 0)
dStopLoss = Ask+dSellStopLossPoint*Point;
if (dSellTakeProfitPoint > 0)
dTakeProfit = Ask-dSellTakeProfitPoint*Point;
int numorder = OrderSend(Symbol(),OP_SELL, Lots_New, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);
if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}
У вас
void OpenBuy() {
double dStopLoss = 0, dTakeProfit = 0;double Lots_New = Lot;
if (isLossLastPos(NULL, -1, MAGIC))
Lots_New *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lots_New = Lot;
Является функцией и в самом начале этой функции вы присваиваете переменной Lots_New значение = Lot;
Подумайте как оно потом изменится, если всегда вы его будете приводить в исходное состояние?
Я вам где сказал это записать? Во внешних переменных перед функцией старт...
И нормализуйте значение лота под корректный размер:
Lots_New = NormalizeLot(Lot*2, False, "");
Закодировать символы. Хотя можно использовать для этого и имена переменных, например EUSRUSD_H1_Var1
точняк! спасибо! Но всеравно не ясно,... получается что мне в индикаторе необходимо будет прописыать все имена переменых, соответствующие всему количеству возможных символов. И если я захочу передать параметр из индикатора при наступлении определенного момента, мне придется писать в индикаторе код определения символа на котором в данный момент находитсся индикатор. А далее с помощью функции сравнения или других типа case определять в какую именно именную глобальную переменную записывать параметр! Я все правильно понимаю! ?
И вот еще просто риторический вопрос или так узнать ваше мнение. В природе анализа существуют так называемые "паттерны" . Паттерны - это ничто иное как шаблоны, основаные на определенных повторяющихся моментах (или параметрах). Но к сожалению, рынок является нестабильной субстанцией, и поэтому к каждому паттерну в тои или иной мере можно подходить как к неточному шаблону или немного отступать от определенных параметров относясь лояльно к образованию паттерна. Если взять за основу анализа любой таймфрейм к примеру - 15 минут, на наличие на нем паттернов возникающих при определенных условиях, то окажется что на графике будет некое количество паттернов. И некое количество ситуаций при которых паттерн не образовался, но эти ситуации были близки к образованию паттерна, просто не подошли по определенным параметрам ( немного отклонялись). Этой ситуации можно было бы избежать смыгчив условия образования паттерна. В таком случае паттернов было бы больше и возможностей для входа в рынок тоже, но увеличилось бы число ложных паттернов, так как параметры были указаны не жестко. (если же учесть еще то что при жестких параметрах - паттерн вообще может и за день не появиться с такими условиями).
Вопрос! с какими же тогда параметрами ( с жестким условием или с мягким условием) использовать образование патерна!
Помогите решить проблему !
Я делаю поиск ордеров которые у меня открытие или отложение. Если они имеются то далее я определяю какой этот ордер бай или селл. При определенных условия (если одно больше другого, а также меньше третьего) то я хочу закрыть этот ордер. Изменить в нем параметры и открыть снова.
Проблема состоит в том - что что сигнал постоянно присутствует на закрытие ордера и его открытие. Поэтому у меня ордер закрывается у открывается снова, и так далее открывается и закрывается ... )))
Как решить эту проблему ? Га
точняк! спасибо! Но всеравно не ясно,... получается что мне в индикаторе необходимо будет прописыать все имена переменых, соответствующие всему количеству возможных символов. И если я захочу передать параметр из индикатора при наступлении определенного момента, мне придется писать в индикаторе код определения символа на котором в данный момент находитсся индикатор. А далее с помощью функции сравнения или других типа case определять в какую именно именную глобальную переменную записывать параметр! Я все правильно понимаю! ?
И вот еще просто риторический вопрос или так узнать ваше мнение. В природе анализа существуют так называемые "паттерны" . Паттерны - это ничто иное как шаблоны, основаные на определенных повторяющихся моментах (или параметрах). Но к сожалению, рынок является нестабильной субстанцией, и поэтому к каждому паттерну в тои или иной мере можно подходить как к неточному шаблону или немного отступать от определенных параметров относясь лояльно к образованию паттерна. Если взять за основу анализа любой таймфрейм к примеру - 15 минут, на наличие на нем паттернов возникающих при определенных условиях, то окажется что на графике будет некое количество паттернов. И некое количество ситуаций при которых паттерн не образовался, но эти ситуации были близки к образованию паттерна, просто не подошли по определенным параметрам ( немного отклонялись). Этой ситуации можно было бы избежать смыгчив условия образования паттерна. В таком случае паттернов было бы больше и возможностей для входа в рынок тоже, но увеличилось бы число ложных паттернов, так как параметры были указаны не жестко. (если же учесть еще то что при жестких параметрах - паттерн вообще может и за день не появиться с такими условиями).
Вопрос! с какими же тогда параметрами ( с жестким условием или с мягким условием) использовать образование патерна!
Помогите решить проблему !
Я делаю поиск ордеров которые у меня открытие или отложение. Если они имеются то далее я определяю какой этот ордер бай или селл. При определенных условия (если одно больше другого, а также меньше третьего) то я хочу закрыть этот ордер. Изменить в нем параметры и открыть снова.
Проблема состоит в том - что что сигнал постоянно присутствует на закрытие ордера и его открытие. Поэтому у меня ордер закрывается у открывается снова, и так далее открывается и закрывается ... )))
Как решить эту проблему ? ГаRoger, спасибо, но неправильно работает все равно. Пробовал прикрутить другой трал, но ошибка все равно остается :( Отличается ли чем-нибудь трейлинг для одной позы и для нескольких одновременно?
Я понял, Вы определяете в начале функции переменную ро, но нигде ее не назначаете,т.е. она равна 0.