[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 229

 
nikkola >> :

我没有反编译,这就是我得到它的方式...

这完全没有区别。

 
很奇怪,它自己就消失了,但还是要感谢TheXpert, 我就知道错误是什么了。
 
nikkola >> :

我没有反编译,这就是我得到它的方式...

而一般来说,这类专家甚至在这个资源上是批量的、开放的。这是某种梅花型的EA,在价格和挥舞的交汇处工作。我用另一个指标替换了它,就这样。并遇到了这个问题。

 
还有一个问题,有谁知道报价是否有存档,因为我的网络已经用完了^_^。
 
nikkola >> :

你好,请帮助我,我不明白...我有一个在震荡器信号上工作的EA,在过零后开仓。我想让它在当前条形图关闭且信号形成时开仓。 它可能会在一分钟内开仓和平仓几次:)直到信号调整。

以下是代码。


外置双Lot = 0.1。
外来的双倍Per=14。
bool gi_84 = TRUE。
int gi_88 = 366。
double gd_92 = 0.02;
double gd_100 = 0.2;
int g_period_108 = 14;
int gi_112 = 50。
int g_slippage_116 = 0;



空白启动() {
int l_cmd_52;
int l_ticket_56;

string l_symbol_0 = Symbol()。
double l_isar_8 = iCustom(NULL,0, "daytrend-t01",Per,0,0)。
double l_isar_9 = iCustom(NULL,5, "daytrend-t01",Per,0,0);
int l_cmd_40 = -1;
int l_ord_total_44 = OrdersTotal()。
Lot = MathMax(Lot, MarketInfo(l_symbol_0, MODE_MINLOT))。
for (int li_48 = l_ord_total_44; li_48 > 0; li_48--) {
如果(OrderSelect(li_48 - 1, SELECT_BY_POS) == TRUE) {
l_cmd_52 = OrderType()。
如果(OrderSymbol() != l_symbol_0 || l_cmd_52 < OP_BUY || l_cmd_52 > OP_SELL) 继续。
l_ticket_56 = OrderTicket()。
RefreshRates()。
如果(l_cmd_52 < OP_SELL) {
如果(l_isar_8 > 0) {
while (OrderClose(l_ticket_56, Lot, Bid, g_slippage_116) == 0) FunError(gi_112);
l_cmd_40 = -1。
继续。
}
} else {
如果(l_isar_8 < 0 ) {
while (OrderClose(l_ticket_56, Lot, Ask, g_slippage_116) == 0) FunError(gi_112);
l_cmd_40 = -1。
继续。
}
}
l_cmd_40 = l_cmd_52。
}
}
如果(l_cmd_40 < OP_BUY && g_period_108 == 0 || DayOfYear() < gi_88) {
RefreshRates()。
if (l_isar_8 < 0 && l_isar_9 < 0 ) while (OrderSend(l_symbol_0, OP_BUY, Lot, Ask, g_slippage_116, 0, 0) == 0) FunError(gi_112);
否则
if (l_isar_8 > 0 && l_isar_9 > 0 ) while (OrderSend(l_symbol_0, OP_SELL, Lot, Bid, g_slippage_116, 0, 0) == 0) FunError(gi_112);
}
}

空白 FunError(int ai_0) {
睡眠(ai_0)。
RefreshRates()。
}

void deinit() {
}

我为此使用了以下代码。


bool Fun_New_bar()
/*
函数的目的是检测是否有一个新酒吧。
如果抓到了新酒吧,则为 "真",否则为 "假"。
===========
变量。
===========
Test_Time - 测试时间
*/
{
static datetime Test_Time=0。
如果(Test_Time!=Time[0])
{
Test_Time=Time[0];
return(true)。
}
return(false)。
}


对于我的问题,如果我知道,请帮助我,或者告诉我是否不可能这样做......我已经找了3天的答案,仍然没有结果。:-(

 
betmen >> :

对于我的问题,请知道的人帮助我,或者告诉我是否不可能这样做......我已经找了3天的答案,到目前为止还没有结果。:-(

自定义用户界面是用来定制设置的。也就是说,一个为特定任务(针对特定指标)专门开发的窗口。在Metatrader中不可能创建这样的窗口。这意味着它们必须在其他地方创建一个可执行文件。可执行文件可以是Exe或Dll。Dll可以在指标/脚本的开头调用,这显然更方便。

 
jartmailru >> :

自定义用户界面是用来设置参数的。即为特定任务(针对特定指标)而专门设计的窗口。在Metatrader中不可能创建这样的窗口。这意味着它们必须在其他地方创建一个可执行文件。可执行文件可以是Exe或Dll。你可以在指示器/脚本启动时调用Dll,这样更舒服。

谢谢你!!!。

如果你愿意分享描述它的文章,我会非常感激你......:-)

 
betmen >> :

谢谢你!!!。

问题是如何配置 "主窗体 "上的对象和MQL4中的变量之间的接口,如果你与我分享一些相关文章的链接,我就会感激不尽了......:-)

嗯,我的印象是,最好忽略Dll。

模态显示可能是危险的(它是UI线程上的一个指示器,你可以得到后果)-。

或也许不是...一般来说,表格可以在一个单独的环境中运行--用Wtl一切都变的很好。

指示器将等待一个允许其工作的标志,并询问这个表格。

然后--当表格显示准备就绪时--有不同的函数,如get(int & to[]),有指针/参考。

这将传输不同的数据。有了弦子,可能会有麻烦......

而且你将与我分享文章的链接;-)。

 
jartmailru >> :

嗯,我的印象是最好忽略Dll。

在模式上显示它可能是危险的(它是在用户界面线程上,你可能会得到后果)-

或也许不是...一般来说,表格可以在一个单独的环境中运行--用Wtl一切都变的很好。

指示器将等待一个允许其工作的标志,并询问这个表格。

然后--当表格显示准备好时--有不同的函数,如get(int & to[]),有指针/引用。

这将传输不同的数据。有了弦子,可能会有麻烦......

你可以与我分享这篇文章的链接;-)。

问题是在选择指标操作本身的设置时,标准指标如何画出一个新的标签 "参数",并有可能用更可读的东西取代数字。

例如,如果你打电话给MA。


在指标的代码中,有一个变量 "MA_Method",方法的选择由条件决定。


switch(MA_Method)
{
case 1 : short_name="EMA("; draw_begin=0; break;
case 2 : short_name="SMMA("; break;
case 3 : short_name="LWMA("; break;
默认 :
MA_Method=0。
short_name="SMA(";


你建议在初始化过程中执行一个从另一个环境中编译的exe,在初始化过程中执行一个exe文件确实是可能的,但接下来还有一个问题--如何从程序中传递数据到指标本身的变量?

也就是说,如何将combobox1.text的值转换为数字传给MA_Method?

它不是通过一个文件进行审美,也没有像MetaTrader和我创建的 "test.exe "那样的共同内存空间。

 
Rita писал(а)>>

谢谢你。我现在要试一试。

//------------------------------------------

是的,它成功了。专家们正在工作。

但它对我不起作用:-(我仍然收到错误的借口和关闭MT的通知。

原因: