[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 454

 
smart:


我如何知道哪些指标在模板中?我安装了一个旧的模板,但不是所有的指标都能显示。我忘记了模板中包含的指标名称。谢谢你!


打开 \templates\ 文件夹,找到你的模板,用记事本打开它,寻找<windows>标签,看看哪些指标是用哪些参数包装的。
 
tol64:

demlin20.06.2011 22:02

大家好!

我有个问题,我不能让程序以点来确定订单的利润。谁来帮帮我。

在循环中尝试所有的订单。

For(i = 0; i < OrderHistoryTotal(); i++)

你用OrderSelect()按某些标准选择你需要的那一个。然后你要求OrderProfit()。这是以货币为单位的净利润。分值大约如下。

(OrderProfit()/10)/OrderLots()+(OrderSwap()/10)/OrderLots()。

检查一下,以防万一)))

谢谢你,我将尝试一下
 

写和读订单评论的信息。OrderComment()

在开立订单时,我在注释中记录余额和止损 水平。当订单被打开时,我查看了日志。一切都是准确的。




余额为10000.00。止损1.67740。总共有15个字符
然后使用字符串函数,我选择所需的字符并将其写入csv 文件。但我面临这样一个问题。如果触发了止损,这些字符[sl] 将被添加到评论的末尾。


而且我有19 位数字,而不是15 位。事情是这样的,我在发表评论前会检查当前余额的数字和价格的数字。这被分配到变量中,然后我用这些变量来确定我需要得到多少个数字和哪些数字。但这个[sl] 让我很为难。毕竟,如果价格有7 位数,文件将包含740,而不是1.67740。我想不出如何解决这个问题)。请帮助我。
 
最简单的事情就是在评论中一次性写出正确的内容。就是说,在数据之间放上分隔符。那么字符串的长度 就不重要了,你只需拉出分隔符之间的子串。
 
granit77:
最简单的方法是在评论中一次性正确书写。这就是在数据之间加上分隔符。那么字符串的长度就不重要了,只要在定界符之间拉出子串即可。


早些时候,有人向我提供了这个简单的变体。

string comment = OrderComment(); comment = StringSubstr(comment, 0, 15); // 修剪到右边。

这是一个简单的变体,但我也遇到了一些困难,但设法解决了问题。)

为什么,如果你一次把所有的东西都写对了,[sl]字就不会被加进去?如果你不介意的话,我可以举个小例子,从订单注释中提取子串 吗?

 
tol64:


早些时候有人向我提供了这个简单的选择。

这个选项很简单,但我也有困难,但还是决定了。)

为什么,如果你一次写对了所有的东西,[sl]字就不会被加上去?如果你不介意的话,我可以举个小例子,从订单注释中提取一个子字符串吗?

让他们加入。你想检索你的数据,而你并不关心它添加了什么,也不关心这个字符串有多长

   string _comment="10000.00"+"$"+"1.67740"+"#";//строка комментария. "$","#" - разделители (символы,какие понравятся) 
   int lenstring=StringLen(_comment);           //длина строки _comment
   int delim1,delim2;                           //позиции разделителей в строке _comment
   string balans,stoploss;                      //извлекаемые подстроки
   delim1=StringFind( _comment, "$", 0);        //определяем позиции разделителей в строке _comment
   delim2=StringFind( _comment, "#", 0);        //определяем позиции разделителей в строке _comment 
   balans   =  StringSubstr( _comment,0, delim1);                //извлекли строку баланс
   stoploss =  StringSubstr( _comment,delim1+1, delim2-delim1-1);//извлекли строку стоплосс 
   Comment("|",balans,"|",stoploss,"|");//проверка 
 
大家好。我遇到过一个有趣的情况,两台不同的电脑可以连接到同一个账户,甚至同时在该账户上进行交易。谁能告诉我是否有可能控制一台远程计算机,例如改变变量ext或至少暂停一个EA?我提前感谢你,因为我面临一个奇怪的情况,我不能接管终端的控制权,它在家里工作(例如,我自己在工作)。
 
granit77:
让他们加入。你想检索你的数据,你不关心添加了什么,也不关心这个字符串有多长。


)) 谢谢你。很好的例子!你用一个词就能搞定。这正是有时极度缺乏的那种例子。
 
snail09:

是的,它肯定是沸腾的。每个人都只是在回答你的...问题。也许你是 如此不了解情况

如果有人能告诉我如何通过价格来追踪趋势线的交叉点(一条直线),这对我来说是否足够了,哪怕是一个提示?立即感谢,因为我不指望在可预见的将来得到答案。你,星星,是个洪水猛兽,愿版主原谅我......。


我不是巫师,我自己也是第一次来。8))))
 
peshihod:

你缺乏实践。你不能运行你的程序,它不工作。一个恶性循环:没有可行的选择-->没有技能-->没有可行的选择。

必须考虑一下....:-/


要继续这个话题。

为了学习,你需要实践。

在交易终端做如下操作:
1.必须开设一个模拟账户。
在交易终端上输入账户信息:文件->登录->...
2.使用一个打开的图表或打开一个新的图表:文件->新图表->...
3.设置最大在:Service->Settings->Charts->Max.bar_history->250000
4.设置一分钟的时间框架:Charts->Period->M1_One_minute
5.进行更新:Charts->Update
6.打开策略测试器。视图->策略测试器
所有其他窗口关闭(最小化),留下一个有图表的窗口和一个有测试器的窗口。
------------------
接下来,在策略测试器的设置中:
7.符号:选择有一个开放图表的符号。
8.模型:按开盘价(.....)
<<<此模型使用到OrderSend().>>
9.使用日期:勾选方框。
日期:_From:<Yesterday(except Saturday and Sunday)>, _to:Today
10.可视化:如果勾选则取消勾选。
11.周期:M1
12.优化:如果存在,则去除勾号。
---------------------
进一步打开MetaEditor:
13.在交易终端菜单中:Service->Editor_MetaQuotes_Language
14.编写一个程序,例如:
//=====================

int i;
int const=5;
int Celoe, Ostatok;
bool flag_Odin_Raz=true;




int start()
{

if(flag_Odin_Raz==true)
{
//-------------
i=0;
while(i<22)
   {
   Celoe=i/const;
   Ostatok=MathMod(i,const);
   Print("При i=", i, " Celoe=", Celoe, " Ostatok=", Ostatok);
   i=i+1;
   }
//-------------
flag_Odin_Raz=false;
}
return(0);
}

//=============================

15.在MetaEditor中,菜单:File->Save_as:给出一个文件名,保存扩展名.mq4,文件夹应该是'experts'。
16.在MetaEditor中的菜单:File->Compile
---------------------------------------
然后在测试器中的设置:
17.顾问:找到并选择程序的文件名。
18.通过鼠标点击 "开始 "按钮。
19.在测试者->日志中
我们通过Print()信息看到程序的结果
-----------------------------------------
为了方便查看:
20.右击日志中的任何一行->打开
这将打开带有*.log文件的日志文件夹,你可以用任何文本编辑器、记事本、Word等打开。

PS
如果文件太大,没有文本编辑器能够打开它,那么你应该使用Windows手段删除这个文件,然后从交易终端按'开始'按钮重新启动程序。测试仪文件夹。"...\Installation_folder\tester\logs",不要与另一个"...\Installation_folder\logs "混淆。

PPS
要学习如何编程,你需要一个编程语言编译器,将必要的行动的文本书写转化为 "程序"(人类可读),转化为机器命令的语言--计算机可以理解。没有实践,就不可能学习。Mql4不会创建独立的程序,*.mq4会变成*.ex4,从程序外壳运行。
*.ex4不能直接运行,上面描述的算法绕过了这一点。