FORTS 请帮助 - 页 25

 
在论坛上找不到,谁能告诉我如何解决 "FOK应用的不完全收敛 "问题?
 
anatolev:
我在论坛上找不到,也许有人会告诉我如何解决 "不完整的FOK顺序 "的问题。

下午好!

你认为这里的每个人都是千里眼吗?

我怎么能告诉你什么呢?没有MT4或MT5终端。

没有你在发送订单时使用的代码,没有FORTS或FOREX市场!

 
Mikalas:

下午好!

你认为这里的每个人都是千里眼吗?

我怎么能告诉你什么呢?没有MT4或MT5终端。

发送订单时没有代码,没有FORTS或FOREX市场!

堡垒和终端分别是由向导生成的第5个EA代码,简单的平均数。


 
anatolev:

代码在哪里?

你如何发送订单?

P/S 通过按SRC按钮插入代码。

 
Mikalas:

代码在哪里?

你如何发送订单?

P/S 通过按SRC按钮插入代码。

//+------------------------------------------------------------------+
//|                                                   CrossMA(3).mq5 |
//|                                                             stas |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "stas"
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\MyFirstSignal\Ma_Cross.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string         Expert_Title             ="CrossMA(SI)"; // Document name
ulong                Expert_MagicNumber       =13607;        // 
bool                 Expert_EveryTick         =false;        // 
//--- inputs for main signal
input int            Signal_ThresholdOpen     =11;           // Signal threshold value to open [0...100]
input int            Signal_ThresholdClose    =10;           // Signal threshold value to close [0...100]
input double         Signal_PriceLevel        =4.0;          // Price level to execute a deal
input double         Signal_StopLevel         =300.0;         // Stop Loss level (in points)
input double         Signal_TakeLevel         =1000.0;         // Take Profit level (in points)
input int            Signal_Expiration        =4.0;            // Expiration of pending orders (in bars)
input int            Signal_MaCross_FastPeriod=8;           // My_MA_Cross(13,MODE_SMA,21,...) Period of fast MA
input ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA;     // My_MA_Cross(13,MODE_SMA,21,...) Method of fast MA
input int            Signal_MaCross_SlowPeriod=21;           // My_MA_Cross(13,MODE_SMA,21,...) Period of slow MA
input ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA;     // My_MA_Cross(13,MODE_SMA,21,...) Method of slow MA
input double         Signal_MaCross_Weight    =1.0;          // My_MA_Cross(13,MODE_SMA,21,...) Weight [0...1.0]
//--- inputs for money
input double         Money_FixLot_Percent     =0.0;          // Percent
input double         Money_FixLot_Lots        =1.0;          // Fixed volume
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Creating signal
   CExpertSignal *signal=new CExpertSignal;
   if(signal==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating signal");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//---
   ExtExpert.InitSignal(signal);
   signal.ThresholdOpen(Signal_ThresholdOpen);
   signal.ThresholdClose(Signal_ThresholdClose);
   signal.PriceLevel(Signal_PriceLevel);
   signal.StopLevel(Signal_StopLevel);
   signal.TakeLevel(Signal_TakeLevel);
   signal.Expiration(Signal_Expiration);
//--- Creating filter MA_Cross
MA_Cross *filter0=new MA_Cross;
if(filter0==NULL)
  {
   //--- failed
   printf(__FUNCTION__+": error creating filter0");
   ExtExpert.Deinit();
   return(INIT_FAILED);
  }
signal.AddFilter(filter0);
//--- Set filter parameters
filter0.FastPeriod(Signal_MaCross_FastPeriod);
filter0.FastMethod(Signal_MaCross_FastMethod);
filter0.SlowPeriod(Signal_MaCross_SlowPeriod);
filter0.SlowMethod(Signal_MaCross_SlowMethod);
filter0.Weight(Signal_MaCross_Weight);
//--- Creation of trailing object
  CTrailingNone *trailing=new CTrailingNone;
   if(trailing==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add trailing to expert (will be deleted automatically))
   if(!ExtExpert.InitTrailing(trailing))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set trailing parameters
//--- Creation of money object
CMoneyFixedLot *money=new CMoneyFixedLot;
   if(money==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add money to expert (will be deleted automatically))
   if(!ExtExpert.InitMoney(money))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set money parameters
money.Percent(Money_FixLot_Percent);
money.Lots(Money_FixLot_Lots);
//--- Check all trading objects parameters
   if(!ExtExpert.ValidationSettings())
     {
      //--- failed
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Tuning of all necessary indicators
   if(!ExtExpert.InitIndicators())
     {
      //--- failed
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   ExtExpert.OnTick();
  }
//+------------------------------------------------------------------+
//| "Trade" event handler function                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
   ExtExpert.OnTrade();
  }
//+------------------------------------------------------------------+
//| "Timer" event handler function                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   ExtExpert.OnTimer();
  }
//+------------------------------------------------------------------+
下面是代码,像这样
 
这个问题时好时坏,只是现在我减少了工作时限作为测试(以便它能更频繁地发出信号),当条件吻合时,它就会倾泻而出。
 
anatolev:
问题是,那么它不是,刚才作为测试减少了工作时间框架(这样它就会更频繁地发出信号),当条件吻合时,就会倒下。

你有一个关于过期的问题。

input int            Signal_Expiration        =4.0;            // Expiration of pending orders (in bars)

在BAR中没有过期,只有日期时间。

 
Mikalas:

你有一个关于过期的问题。

在BAR中不能有过期,只能有日期。

明白了,谢谢!在这种情况下是正确的,还是可以把这一行排除在外? 或者可以把它设置为零,现在我有经验了:)实现了在信号后的第二个条形图的开口处打开标记,把
input double         Signal_PriceLevel        =0.0;          // Price level to execute a deal
我的理解应该是正确的,当我设置为4时,限制的设置比市场好4个点,现在它像市场一样工作。
 
anatolev:
我知道了,谢谢你!如果我想在信号后的第二个柱状体的开口处放置一个标记,我把它设置为零,之前是4。我的理解是否正确,当我有4时,限制被设置为比市场好4个点,现在当我设置为零时,它就像市场那样工作了?

对不起,但所有的标准库都被 "调整 "为适用于FOREX。

我和其他许多人都不使用它们来进行外汇工作。

不幸的是,在使用标准库 方面,我无法帮助你。

 

由于你显然比我更了解MT的自动交易,也许你可以一次性回答几个问题。

1) 例子:我的机器人开了一个仓位,并把它移到了下一个交易日,由于市场在晚上关闭,我晚上关闭电脑,早上在交易前打开电脑,问题是:重新启动电脑和终端后,机器人会不会看到之前开的仓位,会不会继续在这个仓位上工作,转向,追踪等等?

如果是这样,它是如何做到这一点的,通过MagicNumber还是其他方式?

2)如果专家顾问在一台电脑上开了一个交易,然后启动另一台装有同一专家顾问的电脑,它是继续第一台电脑的工作还是 "从头 "开始交易?