if ((Opb==0) && (MA_1_t > MA_2_t + Rastvor*Point)) // Если разница между
{ // ..МА 1 и 2 большая
Opn_B=true; // Критерий откр. Buy
Cls_S=true; // Критерий закр. Sell
Opb++; // Открытие только одного ордера
Ops=0;
if (VKO1>=Ask) {VP=VP*Koff;} // При прибыли предыдущего умножать на коэф.if (VKO1<Ask) {VP=VP*Koff1;} // При убытке предыдущего умножать на коэф1.
}
if ((Ops==0) && (MA_1_t < MA_2_t - Rastvor*Point)) // Если разница между
{ // ..МА 1 и 2 большая
Opn_S=true; // Критерий откр. Sell
Cls_B=true; // Критерий закр. Buy
Ops++; // Открытие только одного ордера
Opb=0;
if (VKO0<=Bid) {VP=VP*Koff;} // При прибыли предыдущего умножать на коэфif (VKO0>Bid) {VP=VP*Koff1;} // При убытке предыдущего умножать на коэф1
}
oDin48,你有没有想过,突然间订单打开了,某个地方出现了错误? 然后订单打开了,沃尔就会增加?
我说的是我的想法,因为我以前在用其他语言编程时,也发生过类似的情况
尝试在信息窗口中显示错误号码,看看是什么情况
gogent,在我写交易标准之前,一切都很正常,或者说,其他的一切都很正常,但这些都有问题......。所以我认为这不是 "开单 "的代码...订单的开启并不循环,当信号消失时,它们一次开启一个......。...所以它要么是与Vol有关的条件,要么是与VP有关的条件...我正试图用不同的词来重写,让我们看看会发生什么......
已添加。
这是关于副总统的问题。下面的代码中有些地方是错误的...按照我的理解,每当一个MA高于另一个MA时,它就会被执行...。即总是......。额外的条件没有作用吗?为什么?像Opn_B,Cls_B,Opn_S,Cls_S,工作正常,不是在每个tick 上创建,但VP在某个地方会变成无穷大......
利润=lot*points*TICK_VALUE
谢谢你=)
对不起,又出现了一个问题。有没有一种简单的方法可以将订单锁定在止盈点?
例如,假设有3个订单,其中一个关闭了,我怎样才能发出关闭信号并获得其利润(或损失)?
每一个tick(即start())都要检查订单是否在TP关闭。顺便说一下,EA的所有行动都登记在日志中(或只在测试期间...?)
当然,现在测试更重要...
最终的结果是,总是会有一个以前关闭的利润...这个问题的逻辑是,只有当止盈 被触发时,我们才应该以某种方式做一个标志。