任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 114

 
MarkTrade:

请原谅,解释一下这里的错误是什么。我搞不清楚。


for (i=0;i>5<==ошибка;i++)
 
MarkTrade:

请原谅,解释一下这里的错误是什么。我搞不清楚。

让我们来分解一下这根绳子。

for (i=0;i<5;i++)

让i从0到5不等。每次迭代后,计数器将增加1。迭代将被计算,直到i小于5。也就是说,该循环将工作,它将运行五个迭代:0、1、2、3、4 - 这些是i循环计数器的值。当i等于5时,循环将终止。

让我们看看你有什么。

for (i=0;i>5;i++)

你把i计数器初始化为0,但只要i大于 5,就必须进行循环的迭代。而且最初并 大于5。因此,循环没有开始。

 
artmedia70:

让我们来分解一下这个字符串

让i从零到五变化。每次迭代后,计数器将增加1。迭代将被计算,直到i小于5。也就是说,该循环将工作,它将运行五个迭代:0、1、2、3、4 - 这些是i循环计数器的值。当i等于5时,循环将终止。

让我们看看你有什么。

你把i计数器初始化为0,但只要i大于 5,就必须进行循环的迭代。而且最初并 大于5。因此,循环没有开始。



哦,对了!谢谢你!我一定是有黑眼圈了。
 
K-o-t:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

各位程序员,请告知如何将EA与指标相结合?

例如,我有一个简单的机器人mo_bidir.mq4,它使用自己的算法进行交易,我希望它使用自己的算法打开交易,但在3个MA信号之后

例如 ,在 信号 -三条移动平均线

FastEMA>MediumEMA>SlowEMA(趋势 上升) - 机器人 买入

FastEMA<MediumEMA<SlowEMA(趋势 下降) - 博特 卖出

Inp_Signal_ThreeEMA_FastPeriod = 8;

Inp_Signal_ThreeEMA_MediumPeriod = 38;

Inp_Signal_ThreeEMA_SlowPeriod= 48;

我想让我的专家顾问在5分钟的时间框架上进行交易,而指标则从每日或4小时的时间框架上发出信号,我希望能够在机器人的设置中改变时间框架。

\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

我很抱歉重复了,但至少告诉我在哪个论坛的主题中申请,或者我应该创建一个新的主题?

我不知道该怎么做。


你想做的事被称为过滤。因此,在 "过滤器 "这个词上做个搜索,看几个有过滤功能的EA,看看你是否能做到你所需要的。
 
artmedia70:

我有点糊涂了......:)一个问题。

1.有一个0.1手的未结头寸

2.它的止盈值是50点。

3.我根据公式PotentialProfit = Lots*TakeProfit*MarketInfo(Symbol(), MODE_TICKVALUE)来计算其潜在利润。

4.从计算中我得到的潜在利润是5美元(0.1*50*1.0)。

该位置处于红色,在某一时刻,又有一个平均买盘打开,但有0.2手

1.我计算了这两个位置的收支平衡。按照要求,该功能已经使用了很长时间,到目前为止,我没有任何抱怨。

2.完美。你已经计算出收支平衡的水平,但...如果你把这两个位置的代币放在上面,它们将以零点收盘。好的,我想。现在我需要在这个级别的BU上添加我需要的点数,以获得总的利润,等于之前计算的-5美元。

3.在这里,我的大脑出现了堵塞。我所做的:我取5美元,除以这两个仓位的总手数(0.1 + 0.2 = 0.3),乘以TICK_VALUE。

我有5/(0.3*1.0) = 16.6666然后我把它乘以点(0.00016),再加到盈亏平衡价格。

4.完美。收益被转移到了那里,但在我看来,在这个水平上收盘的两个拜斯的总利润不等于5美元--在我看来是更少。这可以从测试图表中看出。它清楚地表明,当一个仓位关闭时,余额的增加要比在计算的总取款水平上关闭多个仓位时大得多(你可以通过图表上权益线的出现看到这些地方)。图。


我哪里错了?

我明白,你可以打印总利润,但...我想了解我在计算中可能出错的地方,而不是变量的价值。我已经把它们打印出来了。

( 0.3 * 16 = 4.8 ) < ( 0.3 * 16.66666 = 5 )
我不知道这是否是你心目中的差异,但由于16.6666的四舍五入,利润自然会比你计划得到的5美元少。
 
artmedia70:

我开始有点自以为是了......:)问题是。

1.有一个0.1手的未结头寸

2.它的止盈值是50点。

3.我根据公式PotentialProfit = Lots*TakeProfit*MarketInfo(Symbol(), MODE_TICKVALUE)来计算其潜在利润。

4.从计算中我得到的潜在利润是5美元(0.1*50*1.0)。

该位置处于红色,在某一时刻,又有一个平均买盘打开,但有0.2手

1.我计算了这两个位置的收支平衡。按照要求,该功能已经使用了很长时间,到目前为止,我没有任何抱怨。

2.完美。你已经计算出收支平衡的水平,但...如果你把这两个位置的代币放在上面,它们将以零点收盘。好的,我想。现在我需要在这个级别的BU上添加我需要的点数,以获得总的利润,等于之前计算的-5美元。

3.在这里,我的大脑出现了堵塞。我所做的:我取5美元,除以这两个仓位的总手数(0.1 + 0.2 = 0.3),乘以TICK_VALUE。

我有5/(0.3*1.0) = 16.6666然后我把它乘以点(0.00016),再加到盈亏平衡价格。

4.完美。收益被转移到了那里,但在我看来,在这个水平上收盘的两个拜斯的总利润不等于5美元--在我看来是更少。这可以从测试图表中看出。它清楚地表明,当一个仓位关闭时,余额的增加要比在计算的总取款水平上关闭多个仓位时大得多(你可以通过图表上权益线的出现看到这些地方)。该图表。


我哪里错了?

我明白,你可以打印总利润,但...我想了解我在计算中可能出错的地方,而不是变量的价值。我已经把它们打印出来了。

我不明白为什么它必须如此复杂。
这不就更容易了吗?

  double sumprofit=0;
  for (int i=0; i<OrdersTotal(); i++) 
      {
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
          {
           if ((OrderSymbol()==Symbol()) 
              {
               if (OrderType()==OP_BUY || OrderType()==OP_SELL) 
                  {
                    sumprofit+=OrderProfit()+OrderCommission()+OrderSwap();
                  }
             }
         }
      }
  if(sumprofit > 5) AllPosClose();//5 ----> суммарный профит позиций
 

或像这样

double sumprofit;
  for (int i=0; i<OrdersTotal(); i++) 
      {
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
          {
           if ((OrderSymbol()==Symbol()) 
              {
               if (OrderType()==OP_BUY || OrderType()==OP_SELL) 
                  {
                    sumprofit+=OrderProfit()+OrderCommission()+OrderSwap();
                  }
             }
         }
      }
  if(sumprofit > 5) AllPosClose();//5 ----> суммарный профит позиций
  if(sumprofit < -5) Dolivka();//  определенным лотом Sell или Buy
 
请告诉我,我不是一个程序员--下载的指标在终端的什么地方(如何看到和运行它们)。我下载并安装了它们,但我在终端本身找不到它们?
 
fox6900:
请告诉我,我不是一个程序员--下载的指标在终端的什么地方(如何看到和运行它们)。我下载并安装了它们,但我在终端本身找不到它们?

你是如何安装它们的?告诉我们如何...也许我们会有一个线索...
 
AccountNumber() 能否从dll中读取,如何读取?至少给我一个提示,让我知道该在哪里挖。我的意思是不把函数值传给dll,即从动态库本身。