新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1286

 
MakarFX:

请告诉我,是否有可能在一个指标中进行这种字体的选择?


为什么不呢?制作你自己的枚举和所有的问题.........

 
Alexey Viktorov:

为什么不呢?制作你自己的枚举和所有的问题.........

这很清楚,但我如何要求提供已安装字体的清单?

 
Nikolai Semko:

你是一个喜剧演员。

我在和谁说话?


我错过了一些东西。谢谢。(笑)。就这样吧!

 
ANDREY:

明白了。谢谢你的帮助。

我也认为EA开出这么多订单很困难。我试着用这个代码来限制订单的数量

也就是说,只在10点开一个订单。但结果是一样的。

2020.10.27 10:25:17.548 Core 1 272 Mb内存的使用,包括36 Mb的历史数据,64 Mb的tick数据



说实话,我对MKL5的了解并不透彻。但这个逻辑很蹩脚。你需要开一个订单。这是通过在函数的开始部分将一个小时的变量分配给tick,在结束时将其分配给另一个变量来实现的。在中间,如果变量不相等,你就开一个订单。上面的例子与分钟是一样的。

input int      StopLoss=30;      // Stop Loss
input int      TakeProfit=100;   // Take Profit
input double   Lot=0.1;          // Количество лотов для торговли
int A;    //
int tm; 
//+------------------------------------------------------------------+
void OnTick()
  {
//Print( "====================================================",  TimeCurrent() )   ;
//--- Объявляем структуры, которые будут использоваться для торговли
   MqlTick latest_price;       // Будет использоваться для текущих котировок
   MqlTradeRequest mrequest;   // Будет использоваться для отсылки торговых запросов
   MqlTradeResult mresult;     // Будет использоваться для получения результатов выполнения торговых запросов
   MqlDateTime time_now;     // Будет использоваться для
   
 TimeCurrent(time_now);  
 if(!SymbolInfoTick(_Symbol,latest_price))
 if(time_now.hour==10 && tm != time_now.hour) //на первом тике, когда time_now.hour станет 10 а tm еще 9
                                           // и на следующем тике tm будет равно 10


   {
         mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
         mrequest.price = NormalizeDouble(latest_price.bid,_Digits);           // последняя цена Bid
         mrequest.sl = NormalizeDouble(latest_price.ask + StopLoss*_Point,_Digits); // Stop Loss
         mrequest.tp = NormalizeDouble(latest_price.ask - TakeProfit*_Point,_Digits); // Take Profit
         mrequest.symbol = _Symbol;                                            // символ
         mrequest.volume = Lot;                                                // количество лотов для торговли
         mrequest.type= ORDER_TYPE_SELL;                                       // ордер на продажу
         mrequest.type_filling = ORDER_FILLING_RETURN;                            // тип исполнения ордера - все или ничего
         mrequest.deviation=100;                                               // проскальзывание от текущей цены
         //--- отсылаем ордер
     OrderSend(mrequest,mresult);
    }  

tm= time_now.hour;
     return;
  }



 
MakarFX:

这很清楚,但你如何要求提供已安装字体的清单?

我认为在你的例子中,这是一个自制的清单。没有查询软件。

 
Valeriy Yastremskiy:

说实话,我对MKL5的了解并不透彻。但这个逻辑很蹩脚。你需要一个订单来打开相同的。这是通过在函数的开始部分将一个小时的变量分配给tick,在结束时将其分配给另一个变量来实现的。在中间,如果变量不相等,你就开一个订单。上面的例子与分钟是一样的。

这就是为什么我们建议只用你的魔法师来做EA工作。

如果我们的任务是每天在某个时间段开一次单,那么算法如下。

- 启动EA,它检查未结订单的数量,如果与我们的魔术师的订单是开放的,那么退出,直到下一个tick

- 如果没有订单,EA会等待,直到当前的小时和分钟大于给定的时间。

- 这个时候,EA将检查订单历史,如果没有用我们的Magik下订单,那么它将设置一个订单并退出 - 退出是有用的,而不是处理服务器错误,如果订单没有被设置,那么在下一个tick我们将尝试再次这样做,即没有必要在这个tick....,组织一个周期重复开单。但这是一个品味和目标的问题,它是最容易实现的)))。

 
Igor Makanu:

这就是为什么建议你尝试专门与你的魔术师一起做EA工作。

如果任务是每天在某个时间开一次单,算法如下。

- 启动EA,它检查未结订单的数量,如果与我们的魔术师的订单是开放的,那么退出,直到下一个tick

- 如果没有订单,EA会等待,直到当前的小时和分钟大于给定的时间。

- 这个时候,EA将检查订单历史,如果没有用我们的Magik下订单,那么它将设置一个订单并退出 - 退出是有用的,而不是处理服务器错误,如果订单没有被设置,那么在下一个tick我们将尝试再次这样做,即没有必要在这个tick....,组织一个周期重复开单。但这是一个品味和目标的问题,是最容易实现的)))。

我们在那里还没有达到魔术师的水平。当然了。在5c中,进退两难的当然是应该用错误分析来循环,还是尝试用tick来开仓。如果是长的答案,可能会更容易打勾。

 
Valeriy Yastremskiy:

说实话,我对MKL5的了解并不透彻。但这个逻辑很蹩脚。你需要一个订单来打开相同的。这是通过在函数的开始部分将一个小时的变量分配给tick,在结束时将其分配给另一个变量来实现的。在中间,如果变量不相等,你就开一个订单。上面的例子与分钟是一样的。



非常感谢你。你给我的知识正是我所缺少的。我试图做同样的事情,但用4来类比。事实证明,在这种情况下,这种比喻是错误的。
再次感谢你们。

 
Igor Makanu:

这就是为什么建议你尝试专门与你的魔术师一起做EA工作。

如果任务是每天在某个时间开一次单,算法如下。

- 启动EA,它检查未结订单的数量,如果与我们的魔术师的订单是开放的,那么退出,直到下一个tick

- 如果没有订单,EA会等待,直到当前的小时和分钟大于给定的时间。

- 这个时候,EA将检查订单历史,如果在过去24小时内没有用我们的魔术师下过订单,那么它将下一个订单并退出 - 退出是有用的,而不是处理服务器错误,如果订单没有被下,那么在下一个tick我们将尝试再次做它,即我们不需要在这个tick上组织一个周期的多个订单打开....。但这是一个品味和目标的问题,也是最容易实现的)))。

谢谢你提供的宝贵信息。多亏了你,我对mql 5的理解增加和加深了。
如果你能把我的代码作为一个例子来展示你的思维过程,我将非常感谢你。这将有助于我迅速而准确地吸收你的想法。
再次非常感谢你。

这是我的代码,我在这里错误地写了一个条件,即订单应该只在10:00打开

input int      StopLoss=30;      // Stop Loss
input int      TakeProfit=100;   // Take Profit
input double   Lot=0.1;          // Количество лотов для торговли
int A;    //

//+------------------------------------------------------------------+
void OnTick()
  {
//Print( "====================================================",  TimeCurrent() )   ;
//--- Объявляем структуры, которые будут использоваться для торговли
   MqlTick latest_price;       // Будет использоваться для текущих котировок
   MqlTradeRequest mrequest;   // Будет использоваться для отсылки торговых запросов
   MqlTradeResult mresult;     // Будет использоваться для получения результатов выполнения торговых запросов
   MqlDateTime time_now;     // Будет использоваться для
   
 TimeCurrent(time_now);  
 if(!SymbolInfoTick(_Symbol,latest_price))
 if(time_now.hour==10&&time_now.min==0)
   {
         mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
         mrequest.price = NormalizeDouble(latest_price.bid,_Digits);           // последняя цена Bid
         mrequest.sl = NormalizeDouble(latest_price.ask + StopLoss*_Point,_Digits); // Stop Loss
         mrequest.tp = NormalizeDouble(latest_price.ask - TakeProfit*_Point,_Digits); // Take Profit
         mrequest.symbol = _Symbol;                                            // символ
         mrequest.volume = Lot;                                                // количество лотов для торговли
         mrequest.type= ORDER_TYPE_SELL;                                       // ордер на продажу
         mrequest.type_filling = ORDER_FILLING_RETURN;                            // тип исполнения ордера - все или ничего
         mrequest.deviation=100;                                               // проскальзывание от текущей цены
         //--- отсылаем ордер
     OrderSend(mrequest,mresult);
    }   
     return;
  }
 
ANDREY:

这是我的代码,其中我写错了条件,即订单应该只在10:00开启

我不是用纯MQL5写的,你可以用CTrade SB 下单

CTrade中搜索关于使用SB的文章