[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 38

 
keep87:

这有点简单,我们将在启动函数内工作。

首先,我们将创建一个变量,在其中写入最后一根蜡烛的方向。

int Candle=-1;

我们将用一些数值来填充它,其中一个表示看涨的蜡烛,另一个表示看跌的蜡烛。如果是-1,那么它就什么都不是(要么无法确定方向,要么它没有方向close=open)。

我建议用交易指令来类比,0-买入,1-卖出。

我们进一步写道。

如果(Close[1]>Open[1]) Candle=0; 否则
如果(Close[1]<Open[1] Candle=1;

现在我们已经定义了一个方向,我们可以直接在OrderSend( string symbol,int cmd, ...the rest of the crap...) 函数中使用它。

if(Candle!=-1) OrderSend( Symbol(),Candle, ...其他东西...)。

或者按照你的比喻。

如果(Candle==0) OpenBuy()。
如果(Candle==1)OpenSell()。

是的,事实上,它和我在这里写的函数是一样的,比较一下它的返回值。我不想把所有的代码都写在开头,我正在学习把所有的东西分开。我也明白这个逻辑,谢谢你。
 
hoz:

这是我时常使用的方式。看,现在的函数看起来像这样。

我在日志中看到。

因此,最初从买入价到止损,有1.3204-1.3194=0.001 点的差异。

进一步的1.3210 - 1.3201 =0.009

而在第二种情况下,由于某种原因,止损点更接近于进场价格,但并没有出现错误!在这种情况下,我们的止损点就会出现。我在思考,没有理解。

我后来以不同的方式纠正了这个错误。代码中已经有了条件。

if(price > Ask) && if(price < Bid) 分别用于购买和出售还是有另一种变体?现在我们已经没有错误了。但是,尽管如此,我还是想听听一个更有经验的程序员的意见。


这就是我所写的内容。

第二个错误是,你没有检查你把订单放在哪里

 
r772ra:

也可能是这样。

if(NumberOfPositions("EURUSD")==0 && NumberOfPositions()<10)
而这里的功能是


这更接近于事实。非常感谢你,我将试一试。
 

建议如果你能在mql4中对接变量,即两个int变量,它们需要对接,一个变量的数字是59,另一个是17,我需要得到5917?

 
pasha5282:

建议在mql4中是否可以对接变量,即两个int变量,它们需要对接,一个变量的数字是59,另一个是17,我需要得到5917?


HMM。在我读完这篇文章之前,我并不明白你的意思 :)你想在输出中获得什么类型的数据?

事实证明,我认为解决这种情况的方法是这样的。

1.将int 59和17转换为字符串类型

2.然后我们将这些字符串的数据连接起来。

3.我们将它们转换回int类型

也许还有其他的变体,但我目前无法想到其他。

 
pasha5282:

建议如果你能在mql4中对接变量,即两个int变量,它们需要对接,一个变量的数字是59,另一个是17,我需要得到5917?

5917= (StrToInteger(DoubleToStr(59.123,0) + DoubleToStr(17.456,0))
xxx
 
在php中,你可以对接变量,即$one = 59; $two = 17;$decision= $one.$two; 所以我们不是把两个数字相加,而是把它们 "粘 "在一起,得到5917。
 
pasha5282:
在php中,你可以对接变量,即$one = 59; $two = 17;$decision= $one.$two; 所以我们没有把两个数字放在一起,我们把它们 "粘 "在一起,得到5917。

mql4不是一个非常强大的语言,所以我必须用我所得到的来做...
 
hoz:

mql4不是一个非常强大的语言,所以我必须用我所拥有的来做...

我将不得不处理它。我想我可能忘记了这些基本的东西,但当我去找帮助时,我没有发现它们,也许开发商没有提供这样一个选项,或者我必须寻找更多的信息。
 
pasha5282:

我会查清此事的。谢谢你至少提供了一个答案,我以为我是哑巴,没有记住这么初级的东西,当我去找帮助的时候,我没有找到,显然开发商没有提供这样的选项。或者需要寻找更多,无论如何,谢谢你的回答。

说实话,我甚至不知道为什么这可能是必要的。显然,开发商也没有考虑到这一点。