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

 
solnce600:

大家好!

你能告诉我对以下条件进行编码的最佳方法 吗?

如果从1到20的所有 蜡烛图都是看跌的,没有例外(每个蜡烛图的开盘和收盘之间的点数并不重要)。

要打开一个订单。

唯一的办法是写一份 "补工 "订单。


如果我可以 "手写 "的话。

if(f) OrderSend(...); // открыть ордер Sell


bool f()
{
   for(int i = 1; i <= 20; i++)
    {
     if(Open[i] < Close[i]) return(false);
    }
    return(true);
}
 
AlexeyVik:

嗯,除非是当场写的。


非常感谢你。
 
fmv_for_a_way:

公民们,你们能告诉我为什么Alpari终端无法下订单吗?

OrderSend函数看起来像这样

没有等于零的参数。我已经检查过了。

根据终端条件,最小止损和盈利距离=0.1。

终端产生错误130,并写下无效的利润或停止。

SL和TP参数分别为11和1(归一化后)。

在终端Aforex,Diven FX,ForexClub,AlfaForex - 相同的代码没有问题。

对买入来说,止损和止盈是从买入价开始计算的--这是一个。

第二--由于止损价格是计算出来的,所以需要将其规范化。以前的SL和TP的正常化并不重要。然后在交易订单中,你将表达式的非标准化值替换掉。

第三,所有价格必须符合交易要求和限制。例如,StopLevel级别可能大于止损单的规模。

 

请说明为什么会出现这种情况。

有三个条件(黑体字),当同时执行时,一个订单就成功开仓。

int start()

{

int ot =OrdersTotal();

int index=iHighest(NULL,0,MODE_HIGH,20,1);
int index1=iLowest(NULL,0,MODE_HIGH,20,1);
int index3=iLowest(NULL,0,MODE_HIGH,40,20);

if(Low[index1]==Low[1])

如果(High[index]==High[20])

if(Low[index3]==Low[40]

如果( Bid==Low[40])

如果(ot==0)

OrderSend(Symbol(),OP_SELL,0.1,Bid,1,Ask+1500*Point,Ask-300*Point, "jfh",123 )

问题

只要我添加第四个条件(红色标记), 只有当第四个 条件得到满足时,订单才会打开。

前面的三个条件 被程序忽略了。

我试图通过&&.... 来写条件,但没有成功。

如何使权证在所有四个条件同时满足的情况下被打开。

谢谢。

 
solnce600:

请说明为什么会出现这种情况。

有三个条件(用粗体字突出显示),如果同时执行,就能成功开出一个订单。

int start()

{

int ot = OrdersTotal();

int index=iHighest(NULL,0,MODE_HIGH,20,1)。
int index1=iLowest(NULL,0,MODE_HIGH,20,1)。
int index3=iLowest(NULL,0,MODE_HIGH,40,20)。

如果(Low[index1]==Low[1])

如果(High[index]==High[20])

if(Low[index3]==Low[40]

如果( Bid==Low[40])

如果(ot==0)

OrderSend(Symbol(),OP_SELL,0.1,Bid,1,Ask+1500*Point,Ask-300*Point, "jfh",123 )

问题

只要我添加第四个条件(红色标记), 订单就会在第四个 条件得到满足的情况下打开。

该程序忽略了前面三个条件

我试图通过&&.... 来写条件,但没有成功。

如何做到这一点,以便在执行所有四个条件的情况下立即打开手令。

谢谢你。

展开大括号,因为该算法应该是有效的。
 
artmedia70:

对于买入,止损和止盈都是从买入价开始计算的--这就是一个。

其次,如果你计算止损单的价格,它们需要被规范化。事实上,SL和TP早些时候被规范化了,这没什么大不了的。然后在交易订单中,你将表达式的非标准化值替换掉。

第三,所有的价格必须符合交易业务的要求和限制。例如,StopLevel的级别可能大于止损单的大小。



在Alpari上,从昨天开始转为市场执行,即。

首先买/卖sl=0;tp=0;然后修改sl=100;tp=300。

 
AlexeyVik:
展开大括号,因为该算法应该可以工作。

谢谢你。
 
pako:


在Alpari上,从昨天开始转为市场执行,即。

首先买入/卖出sl=0;tp=0;然后修改sl=100;tp=300。

这也是在同一个地方。当然--一个与另一个并不矛盾。它计算从Ask买入的止损单。它并没有使它们正常化。不检查StopLevel距离限制。

简而言之--一个大杂烩。

 
太好了,问题被删除了,太好了。
 
pako:


Alpari从昨天开始转为市场执行,即

首先买入/卖出sl=0;tp=0;然后修改sl=100;tp=300。


谢谢你的建议。我将研究这个问题。转为市场执行是否意味着挂单 也应以零止损和零利润下单,然后再进行修改?