bool CheckForCloseBULL4()
{
int i;
for(i=OrdersTotal()-1;i>=0;i--)
if( ! OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ) continue;
if( OrderMagicNumber() == MAGICMA1 && OrderSymbol() == Symbol() && OrderType() == OP_BUY )
if(OrderOpenPrice()+8*MyPips < Ask) return(true);
elsereturn(false); // <-- the else here is wrong. Use {} if you are unsure what is processed where
}
int OpenOrders_BULL4(string symbol)
{
int buys=0;
for(int i=0;i<OrdersTotal();i++) // <-- do it like you do it in the other loops!
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; // <-- break? Why not using always the same code for the same thing?
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA1) // Look at the for loop you used in CheckForCloseBULL4().
{
if(OrderType()==OP_BUY) buys++; // <-- why this additional if? Simplify it to:
} // if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA1 && OrderType()==OP_BUY) buys++;
}
return(buys);
}
void start()
{
bool SignalBULL41Executed; //<-- if defined inside the start function, the flags get reset with every tick.bool SignalBULL42Executed; // define it outside in global scope.if(Fun_New_Bar()==true)
{
SignalBULL41Executed=false;
SignalBULL42Executed=false;
}
if(BULL4() && BULL41send() && !SignalBULL41Executed && OpenOrders_BULL4(Symbol())==0)
{
OpenBULL41();//do open buy position //<-- As far as I remember, you defined this as bool. Do only set the flag, if the function returns true.
SignalBULL41Executed=true; // change to: if(OpenBULL41())SignalBULL41Executed=true;
}
问题1.在这些函数中,我必须在蜡烛中使用MyPips吗? bool BULL4()
是的,但是,BULL4()函数 中的if语句是否正确?我的意思是,你是否在寻找你正在计算的那个蜡烛?
我写的程序对我来说是好的:) 你呢?
这是你的,所以它必须对你有好处,而不是我。
一些评论。
我纠正最后的错误
我添加了第二个购买
条件来打开。
开盘和收盘检查与BULL41的代码相同(只是点数不同)。
启动功能看起来像这样。
现在我需要标志,重新设置信号和改变开始功能。
我的想象力说。
新酒吧。
而开始是这样的
代码是有效的,但也许我有一些错误
我错过了ResetSignals(),所以它不能很好地工作。
我纠正了最后的错误
...
...
...
代码正在运行,但也许我有一些错误
我没有说,在CheckForCloseBULL41()函数 中的其他内容是错误的,因为它的格式不好看。你并没有改变任何东西。如果超过一个未平仓的订单与下面匹配,你会有问题,因为循环没有运行所有订单。
你不需要信号标志,只要你只在特定数量的已开订单上开新单。这也可以防止代码打开更多的订单。
你的Fun_New_Bar()函数不正确。
1.其他问题
如果这是不正确的,我将再次搜索。
2.New Bar问题
3.重置信号问题
如果 我把 第2 和第3 点 写 坏了 , 我 就没有 办法 解决了, 如果可以的话,我会 问 最大的方向。
1.其他问题
固定
2.新栏问题
已修复
3.重置信号问题
上述修正是针对旗帜的。但开放的问题是,你需要它吗?如果你只打开一个新的订单,如果特定数量的订单 已经打开,你可能不需要它。这就是我所说的黄色标记表达的意思。但不用担心,它也适用于旗帜,你可以在以后淘汰它们,因为事实证明它们已经过时了。
我认为 这个标志 不是必须的, 但 有一天 会很有用。
如何在一个 EA中 拥有两个EA ?
我 复制 了EA BULL4 ,改变了 BULL6 的 idex 和 间隔 点数。
复制 EABull4 + EA Bull6 太新的EA( 数字 ()后 的所有内容) 在函数 start()和magicma2 内 做修改...
我的 EA工作得非常好,各方案 之间互不干扰 。 我很高兴。
我想 感谢你 的帮助, 没有你的帮助 ,特别是 你的支持,Kronin,我 不会写 。
在我看来,主题是结束。
尊敬的先生
我的 EA工作得非常好,各方案 之间互不干扰 。 我很高兴。
我想 感谢你 的帮助, 没有你的帮助 ,特别是 你对 克罗尼 的支持 ,我 就不会写出来 。
不客气。谢谢你的良好反馈。