关于落实议员的讨论。 - 页 7

 
同事们好,谁能在2个指标的基础上创建一个EA,在交叉点打开和关闭交易,见照片,我自己试过,但没有成功(((((。
 
katrina87:
同事们好,我有一个非常大的请求,希望有人能在2个指标的基础上创建一个顾问,在交叉点开仓和平仓,见图,我自己试过,但没有结果(((((。

我自己没有用过它。我刚刚在一个kodobase中看到它。看看吧,也许它对你有用。顺便说一下,在kodobase中还有更多这样的顾问。你可以用谷歌搜索你正在看的网站。https://www.mql5.com/ru/code/12375

Советник на основе отскока от границы канала МА
Советник на основе отскока от границы канала МА
  • www.mql5.com
Для торговли используются показания индикатора Moving Average. Если цена отклонилась от линии Moving Average на определенное количество пунктов, то выставляется ордер в сторону линии Moving Average. Советник может приносить прибыль, но она получается маленькой. Также для него требуется большой депозит. На рисунке сплошная красная линия —...
 
你好,我想写一个交易机器人,想法很简单,很有创意。对于初学者来说,我需要一个阻力支撑位指标来输出这些非常水平的强度,例如:高位中间低位。有什么建议吗?
 
paradisehell1:
你好,我想写一个交易机器人,想法很简单,很有创意。在开始的时候,我需要一个阻力支持水平指标来显示这些非常水平的强度,例如,高位中间低位。有什么建议吗?

自由职业者将拯救思想巨人和俄罗斯民主之父。

 
paradisehell1:
你好,我想写一个交易机器人,想法很简单,很有创意。例如,如果我想使用一个外汇机器人,我将不得不寻找一个支撑位指标,显示支撑位和阻力位的强度,如高、中、低。

在我看来,这个想法并不明显,因为它很出色。这就是为什么没有动力的原因。我不能代表其他人,但直觉告诉我,他们也是如此。你可以让它看起来像这样。他们可能无法在模拟或真实的情况下进行手动交易,至少在几个月内。你在一个月内赚了多少%,保证金水平和缩减情况如何。如果这些指标很有趣,你可以很容易地找到愿意免费写这些指标的人。但你可以在kodobe寻找一些东西。顺便说一句,在这个网站上,程序员的工作是非常便宜的。

 
你好!我几乎100%肯定,我的问题以前已经被提出过很多次了。因此,如果有人能告诉我去哪里找,我将非常感激。我的问题是--如何在我的专家顾问中实现在达到一定利润时停止交易的可能性?假设利润是200美元--就这样,我们今天不做交易。
 
altec3:
你好!我几乎百分之百肯定,我的问题已经被提出过很多次了。因此,如果有人能告诉我在哪里可以找到它,我将非常感激。问题--如何在EA中实现达到一定利润时停止交易的能力?假设利润是200美元--就这样,我们今天不做交易。

这是针对mt4的,还是应该针对mt5的?

在开仓之前,立即进行检查,如果利润超过了这段时间--退出。

void OnTick()
 {
 ...
 if(GetProfitHistoryInCurrency(_Symbol, 0, Magic) > 200) // 0 - сегодня, 1 - вчера, 2 -позавчера
  return;
 
 OrderSend(...);


请阅读整个主题,你会找到你需要的代码。

关于交易、自动交易系统和策略测试的论坛

如何计算EA中的平仓订单数量

Vitaly Muzichenko, 2016.04.12 10:36

//===============================================================================================
//---------------------- Возвращает профит за выбранный период с истории -----------------------+
//===============================================================================================
double GetProfitHistoryInCurrency(string symb="0", int index=-1, int mg=-1) {
 if(symb=="0") { symb=Symbol();}
 datetime DailyStartTime=iTime(symb,PERIOD_D1,index);
 double DailyProfit=0;
  for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
    if((OrderSymbol()==symb || symb=="") && (mg<0 || OrderMagicNumber()==mg)) {
     if((OrderCloseTime()>=DailyStartTime && OrderCloseTime()<DailyStartTime+86400) || index<0)
      DailyProfit+=(OrderProfit()+OrderCommission()+OrderSwap());
 }}}
  return(DailyProfit);
 }
Использование:  GetProfitHistoryInCurrency(_Symbol, 0, Magic); // 0 - сегодня, 1 - вчера, 2 -позавчера

 
Vitaly Muzichenko:

这是针对mt4的,还是应该针对mt5的?

在开仓前立即进行检查,如果利润超过了这个时期--退出。


阅读整个主题,你需要的代码就在那里。


谢谢,我一定会看一看的。是的,而且MT5也需要该代码。
 

下午好!

我想写一个函数来确定当前一天的利润。

//+------------------------------------------------------------------+
//|Функция возвращает прибыль за текущие сутки                       |
//+------------------------------------------------------------------+
double Day_Profit()
  {
//--Запрашиваем историю сделок за последнии сутки
   HistorySelect(TimeCurrent()-PeriodSeconds(PERIOD_D1),TimeCurrent());
   uint     total       =HistoryDealsTotal();   // количество сделок в истории
   ulong    ticket      =0;                     // тикет сделки в истории
   long     type        =0;                     // тип сделки
   double   profit      =0.0;                   // финансовый результат сделки
   double   commission  =0.0;                   // коммиссия по сделке
   double   DayProfit   =0.0;                   // прибыль за текущие сутки
//--- for all deals
   for(uint i=0; i<total; i++)
     {
      if((ticket=HistoryDealGetTicket(i))>0)       //--- если имеются сделки, то...
        {
         profit      =HistoryDealGetDouble(ticket,DEAL_PROFIT);
         commission  =HistoryDealGetDouble(ticket,DEAL_COMMISSION);
         if(HistoryDealGetInteger(ticket,DEAL_TYPE)!=DEAL_TYPE_BALANCE)
           {
            DayProfit+=(profit+commission);
           }
        }
     }
   return (DayProfit);
  }
//+------------------------------------------------------------------+

你能告诉我如何使用函数

HistorySelect (datetime from_date,datetime to_date)
以指定从当前日期开始的时期。很明显,to_date的结束时间=TimeCurrent(),如何正确指定from_date的开始时间,使其从当前日期的00h:00m:00c开始?
 
altec3:
下午好,请告诉我如何在函数中指定从当前日期开始的周期。很明显,to_date的结束时间=TimeCurrent(),如何正确指定from_date的开始时间,使其从当前日期的00h:00m:00开始?

假设今天至少有一个刻度,算法如下:当前时间被发送到MqlDateTime 结构中。然后在这个结构中把时、分、秒设置为零。剩下的就是将编辑好的结构转换为时间。

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   MqlDateTime STimeCurrent;
   TimeToStruct(TimeCurrent(),STimeCurrent);
   STimeCurrent.hour=0;
   STimeCurrent.min=0;
   STimeCurrent.sec=0;
   datetime start_day=StructToTime(STimeCurrent);
   Print(start_day);
  }
//+------------------------------------------------------------------+


结果。

2020.09.03 00:00:00
附加的文件:
1.mq5  3 kb