Данные на стоплосс и тейкпрофит написал до условий на покупку и продажу
double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); // лучшее предложение на покупкуdouble Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); // лучшее предложение на продажуdouble SL = NormalizeDouble(StopLoss,_Digits);
double TP = NormalizeDouble(TakeProfit,_Digits);
bool Buy_Condition_1=...;
bool Buy_Condition_2=...;
bool Buy_Condition_3=...;
а сам
bool PositionModify(conststring_Symbol,constdouble SL,constdouble TP)
{
if(PositionSelect(_Symbol)==true) // есть открытая позиция
{
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{
Alert("SL!!!");
return; // закрыл
}
MqlTradeRequest request={0};
MqlTradeResult result ={0};
mrequest.action=TRADE_ACTION_SLTP;
mrequest.symbol=_Symbol;
mrequest.magic =EA_Magic;
mrequest.sl =StopLoss;
mrequest.tp =TakeProfit;
OrderSend(mrequest,mresult);
if(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен
{
Alert("Стопка прошла#:",mresult.order,"!!");
}
else
{
Alert("Стопка не прошла - код ошибки:",GetLastError());
return(false);
}
return(true);
}
//----------------------------------------------------------------- if(Buy_Close_1 || Buy_Close_2)
после отсылки ордера на покупку.
Пока при компиляции борюсь с "лишними" скобками фигурными.
Вопрос дубль 2 - правильно ли я расположил модификацию позиции?
И вообще, "классический" ли он имеет код (при условии, что он верный)?
Подскажите, как лучше реализовать следующее: запускается эксперт, при инициализации он рисует (в области графика? где-то еще?), скажем, TextBox и Button. Эксперт обрабатывает тики. Если пользователь вводит некое значение в TextBox и нажимает Button, то обработчик тика видит эти новые данные.
Иными словами - как правильнее (проще, лучше) всего организовать интерактивный обмен данными пользователя с экспертом через элементы Windows GUI? CChartObjectEdit и CChartObjectButton это, извинияюсь, какая-то "порнография".
Спасибо. Извините, если вопрос простой и ткните, пожалуйста, где ответ!
Если не хотите,то надо правилно считат переменние.
Стоплос и тейкпрофит в пункти.*Понт = 0.002-ето тейк,ну надо и к добавит.
PositionModify(Symbol(),NormalizeDouble(Bid - SL*_Point,4),TP*_Point);
PositionModify(Symbol(),NormalizeDouble((Bid - SL*_Point),4),NormalizeDouble((Bid + TP*_Point),4));
Где пишут модификацию позиции?
Данные на стоплосс и тейкпрофит написал до условий на покупку и продажу
Есть ошибка в коде:
Благодарю. Убрал.
А с расположением что?
Такое дело, что если фигурные скобки ставлю на места, то при компиляции выдает - 'PositionModify' - function can be declared only in the global scope
и на этот раз ему я верю, то есть сам "модификатор позиции" должен находится до int OnInit(), а условия (if) после раздела на покупку ?
Приведите код, я не пойму о чем Вы.
ПС: Функцию PositionModify() Вы должны описывать на глобальном уровне, т.е. на уровне, на котором находятся функции: OnInit(), OnTick(), OnDeinit().
Исправил. Компилируется без ошибок. Работу в тестере не проверял. Ваш код был не читабелен. Привыкните оформлять код как в моем исправленном варианте.
Спасибо (хотя не совсем понял что изменилось кроме расположения).
Что означает "SMB" во 2 строке и где она определяется значениеями? разве нельзя писать _Symbol ?
mrequest.action = TRADE_ACTION_SLTP; mrequest.symbol = smb; mrequest.magic = EA_Magic; mrequest.sl = SL; mrequest.tp = TP;Здравствуйте, скажите будут ли выполняться ордера по сигналам(при подписки на сигнал), если у меня будет выключен комп с терминалом?
Добрый день,
Подскажите, как лучше реализовать следующее: запускается эксперт, при инициализации он рисует (в области графика? где-то еще?), скажем, TextBox и Button. Эксперт обрабатывает тики. Если пользователь вводит некое значение в TextBox и нажимает Button, то обработчик тика видит эти новые данные.
Иными словами - как правильнее (проще, лучше) всего организовать интерактивный обмен данными пользователя с экспертом через элементы Windows GUI? CChartObjectEdit и CChartObjectButton это, извинияюсь, какая-то "порнография".
Спасибо. Извините, если вопрос простой и ткните, пожалуйста, где ответ!
Классно.
1. Теперь код компилируется. Первое изменение.
Жаль что компиляция и работоспособность не одно и то же)
Ну вот почему в тестере код выставляет стоплоссы и профиты а на графике самом нет?!!
Начинаю психовать по ходу )))
Ну вот почему в тестере код выставляет стоплоссы и профиты а на графике самом нет?!!
Начинаю психовать по ходу )))
Lester:Здес поставил шаблон,внутри ест и модификация-показал как ползуватся.
https://www.mql5.com/ru/forum/6343/page73
Если не хотите,то надо правилно считат переменние.
Здравствуйте, скажите будут ли выполняться ордера по сигналам(при подписки на сигнал), если у меня будет выключен комп с терминалом?