Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Рынок закрыт!
#1 - Я никогда не вызываю объект Button по OnTick(), Start(), так что это нормально?
#2- Могу ли я применить к объекту Button Object 'ANCHOR_RIGHT_UPPER'?
#3 - Итак, мне все еще нужна помощь по моему вопросу #145, пожалуйста.
Спасибо!
#1 - I never call Button Object by OnTick(), Start(), so is it normal?
Да
#2- Могу ли я применить к объекту кнопки 'ANCHOR_RIGHT_UPPER'?
Нет, точка привязки фиксируется на ANCHOR_LEFT_UPPER
#3 - Итак, мне все еще нужна помощь для моей проблемы #145, пожалуйста.
Да, вы правы - EventSetMillisecondTimer(250)
Да
Нет, точка привязки фиксируется на ANCHOR_LEFT_UPPER
Да, вы правы - EventSetMillisecondTimer(250)
#Profit Orders Counting - Open
Я просто пытаюсь получить все прибыльные позиции для расчета в одном значении.
Это дает мне отдельные значения.
Я действительно потерял голову. Я пробовал несколько способов, и исследовал много об этом, но никаких хороших результатов.
Пожалуйста, помогите мне, если это возможно, объяснить немного больше о расчете прибыли, очень признателен.
Надеюсь, я скоро получу хороший ответ.
{
double trueprofit = 0;
for ( int i = OrdersTotal() - 1; i >= 0; i-- )
{
if ( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;
if ( closeothers == false && OrderSymbol() != Symbol() ) continue;
trueprofit = OrderProfit() + OrderSwap() + OrderCommission();
if ( trueprofit >= 0 )
{
Print( "Profit: ", trueprofit );
ObjectSetString ( 0, "all profit counting object", OBJPROP_TEXT, DoubleToString( trueprofit, 2 ) );
}
}
//---
return;
}
Заранее спасибо.
Вы перезаписываете значение trueprofit на каждой итерации цикла, а не добавляете его.
Запомните это:
было изменено на это:
Вам нужно четко определиться между тем, что вы хотите, чтобы происходило на каждой итерации цикла (каждый ордер) и тем, что вы хотите, чтобы происходило после цикла (после проверки всех ордеров).
Спасибо за быстрый ответ.
Возможно, я так устала, извините. ( Просто я не могу понять, что ямогу сделать.)
Мне нужно описать немного больше моей проблемы (насколько я могу).
Итак, у меня есть 2 функции:
Наконец, я хотел бы, чтобы эта ( мой последний код комментария) функция подсчета прибыли могла вычислять оба типа ордеров "OP_SELL и OP_BUY" просто прибыльными.
Заранее спасибо.
как вы пытаетесь показать все прибыльные значения в одном Label?
Вы имеете в виду все суммированные AcountProfit() или для каждого отдельного OrderProfit().
Если вам нужно что-то вроде этого:
Пожалуйста, посмотрите эту статью:
https://www.mql5.com/en/articles/2723
Спасибо за ваш комментарий.
Извините за путаницу.
Нет, я думаю, что мне нужно немного другое.
Я постараюсь прояснить мой вопрос.
У меня есть 3 позиции по EURUSD. Две из них прибыльные, одна - убыточная. Поэтому мне просто нужно вычислить две из них, которые являются прибыльными.
Например: если каждая из них +1.00 (2 прибыльные позиции = +2.00), то мне просто нужно получить значение всех прибыльных позиций.
Я просто быстро сделал следующую вкладку, чтобы помочь мне в том, что я пытаюсь сказать. (внизу этого комментария файл изображения)
(Английский не мой родной язык - иногда я с трудом с ним справляюсь)
Всего наилучшего.
// in your orderselect loop put
if(OrderProfit()>0)
{
totalprofit=totalprofit+OrderProfit();
}
Подсчет ордеров #Profit - закрытые
{
totalprofit=totalprofit+OrderProfit();
}
Я решил свою проблему после вашего замечательного примера кода.
Отличный человек, большое спасибо!
Вы перезаписываете значение trueprofit на каждой итерации цикла, а не добавляете к нему.
Запомните это:
Вы должны четко различать, что вы хотите, чтобы происходило на каждой итерации цикла (каждый ордер) и что вы хотите, чтобы происходило после цикла (после того, как вы проверили все ордера).
Только что закончил нижеприведенный код скрипта.
Я еще раз проверяю ваш комментарий, тогда я знаю, что вы объяснили мне это. Но мой английский не позволяет понять его.
Всего наилучшего каждому из вас, мужчины.
{
double trueprofit = 0;
double totalprofit = 0;
for ( int i = OrdersTotal() - 1; i >= 0; i-- )
{
if ( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;
if ( closeothers != true && OrderSymbol() != Symbol() ) continue;
trueprofit = OrderProfit() + OrderSwap() + OrderCommission();
if ( trueprofit >= 0 )
{
totalprofit += OrderProfit() + OrderSwap() + OrderCommission();
Print( "Profit: ", DoubleToString( totalprofit, 2 ) );
ObjectSetString ( 0, _Checkthisout_name_Label, OBJPROP_TEXT, "Total Profit: " + DoubleToString( totalprofit, 2 ) );
}
}
//---
return;
}
Я надеюсь, что этот код скрипта будет работать хорошо. Если что-то не так в приведенном выше коде, пожалуйста, дайте мне знать.
Спасибо за все.