Как в MQL4 реализовать такое в начале дня устанавливаем два отложенных ордера После того как один(любой) сработал - второй удаляется За пять минут до закрытия бара(допустим дневного) закрыть сработавший (если он не был закрыт по SL или TP) Если ни один отложенный ордер не соработал то за пять минут до закрытия бара удаляем их обоих Заранее спасибо
我在Delphi中做了一个DLL,我从MT4中调用它。除了通过引用传递的简单参数外,一切都可以工作。在Delphi中,声明如下:
procedure Test2(var i: integer); stdcall;
begin
if addr(i) = nil then ShowMessage('What the hell?');
end;
stop to call it as
#import "DLL1.dll"
void Test2(int& i);
我调用
int init() {
int x = 5;
Test2(x);
return(x);
}
调用时,堆栈中应该有变量integer的引用,但null却有
那么如何通过引用传递一个int参数呢?
当传递数组时,数组值是通过引用传递的
使用
MetaEditor 4.00 build 183
MetaTrader 4.00 build 186
还有一个问题:如果我把一个字符串作为引用传递,那么字符串缓冲区的大小是多少?
还有一个问题:
如果我把一个字符串作为函数结果传递,字符串的内存区域应该分配在哪里?我应该传递一个指向DLL中全局变量 的指针吗?在这种情况下,我能否确定DLL不会在metatrader的任何模式下被不同的线程同时调用?
预先感谢
在一天的开始设置两个挂单
一旦一个(任何)触发 - 第二个被删除
在收盘前5分钟(比如一个日线)关闭触发的(如果它没有被SL或TP关闭)
如果没有挂单触发,在收盘前5分钟删除它们两个
非常感谢
2) 如果我把字符串作为函数结果传递,那么应该把字符串的内存区域分配到哪里?我应该传递一个指向DLL中全局变量 的指针吗?在这种情况下,我可以确定DLL不会在metatrader的任何模式下被不同的线程同时调用?
预先感谢
当一个(任何)触发 - 第二个被删除
在收盘前5分钟(比如一个日线)关闭触发的(如果它没有被SL或TP关闭)
如果没有挂单触发,在收盘前5分钟删除它们两个
提前感谢
你在正确的时间设置挂单(这很容易)。然后你开始检查订单。一旦出现买入或卖出订单,你就通过删除挂单 的工作(更简单)。然后,在适当的时候,努力关闭所有订单(这很容易)。
в начале дня устанавливаем два отложенных ордера
После того как один(любой) сработал - второй удаляется
За пять минут до закрытия бара(допустим дневного) закрыть сработавший (если он не был закрыт по SL или TP)
Если ни один отложенный ордер не соработал то за пять минут до закрытия бара удаляем их обоих
Заранее спасибо
这就是你的实施方法,你在正确的时间放置挂单(这很容易)。然后你开始检查订单。一旦出现买入或卖出订单,你就通过删除挂单来工作(这更简单)。然后,在适当的时候,努力关闭所有订单(这非常容易)。
我要求提供一个工作代码(也许有人已经实现了)。
我所做的一切都没有用......odrerdelete的过程不知为何令人困惑。
另一个问题:有时价格冻结(没有刻度)几分钟,也就是说,我们不能关闭订单,因为int start()主体没有被执行,尽管其他符号的刻度被收到,是否可以从任何有刻度的符号中传递Curetime值?
简单地说,Curetime值实际上并没有冻结
那么这个代码片段是做什么的呢?删除尚未触发的两张
挂单