任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 151

 
Forexman77:
你能告诉我如何在交易开仓的条形图的高点或低点设置止损吗?

如果高,则用High[ ]代替停止,如果低,则用Low[ ],但要记住两件事。


1.这是由庄家设定的价差和距离。

2.你不能将止损点正确地放在正在形成的栏杆上。就是说,High[0]。而且只在以前的酒吧。即High[1],等等。

 
satorifx:

下午好。

你能告诉我如何在一个图形中以编程方式连接两个坐标系吗?(X,Y)和(时间,价格)?你需要一个坐标为(X,Y)的标签,它将永远处于图表上的最低价格。

artmedia70:
是有区别的。在一般的图表上,即在终端的所有可用历史上,还是在可见的图表上(在显示器屏幕内)?


确切地说是在显示器屏幕内的可见图表上

 
satorifx:

确切地说是在显示器屏幕内的可见图上

把这个脚本扔到图表上。

//+------------------------------------------------------------------+
//|                                       sc_LowestPricePerChart.mq4 |
//|                               Copyright 2013, Artyom A. Trishkin |
//|                          artmedia70@gmail.com, Skype: Artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, Artyom A. Trishkin"
#property link      "artmedia70@gmail.com, Skype: Artmedia70"
//+------------------------------------------------------------------+
//|           script program start function                                    |
//+------------------------------------------------------------------+
int start() {
   int count=WindowBarsPerChart();                             // количество видимых баров 
   int LowestBar=iLowest(Symbol(),Period(),MODE_LOW,count,0);  // бар с минимальной ценой
   double LowestPricePerChart=Low[LowestBar];                  // минимальная цена из видимых баров
   SetArrow(5, Yellow, "sc_LowestPricePerChart_LowestPrice", Time[LowestBar], LowestPricePerChart, 1);
   return(0);
}
//+------------------------------------------------------------------+
void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, 0, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSet(nm, OBJPROP_ARROWCODE, cd);
   ObjectSet(nm, OBJPROP_COLOR    , cl);
   ObjectSet(nm, OBJPROP_WIDTH    , sz);
}
//+------------------------------------------------------------------+

对最大限度进行同样的处理

 
artmedia70:

把这个脚本扔到图表上。

对最大限度进行同样的处理


问题是,ARROW 对象有坐标(时间,价格),但没有坐标(x,y)。如果你扩展屏幕底部的指示器窗口,对象将与窗口一起移动,但同时,窗口中对象的坐标(x,y)将发生变化,而且无法计算,因为两个坐标系之间没有联系。原则上,你可以使用TEXT 对象或任何其他对象来代替ARROW 对象,但这并不能解决问题。
 
satorifx:
关键是ARROW 对象有坐标(时间,价格),但没有坐标(x,y)。如果我们把屏幕底部的指示器窗口放宽,物体将与窗口一起移动,但同时窗口中物体的坐标(x,y)将发生变化,它们无法被计算,因为两个坐标系之间没有联系。原则上,你可以使用TEXT 对象或任何其他对象来代替ARROW 对象,但这并不能解决问题。

那么就把白色的东西和热的东西绑在一起。我们已经向你展示了如何知道可见条形图上的最低价格,并向你展示了如何在图表上标记它。

其余的是你晦涩的一厢情愿的想法;)

 
Sepulca:



我不太明白你的意思?如果没有文件(没有被打开)或有一个阅读错误。它本来会给出一个消息,但没有任何消息......。
 
代码应该这样写,即在交易开始的条形图上,如果有尖峰形成,在紧接着有尖峰的条形图的下一个条形图上有一个出场,但在交易开始后的条形图上的信号,即发生尖峰的信号,则被忽略。描述尖峰的代码没有问题。困难的是如何告诉程序,信号只使用交易开始时的那一栏。
 
Forexman77:
我需要编写代码,以便在开仓的条形图上,如果在紧接着有尖峰的条形图上形成尖峰,则退出头寸,但在开仓的条形图上,发生尖峰的条形图上的信号则被忽略掉。描述尖峰的代码没有问题。困难的是如何向程序表明,只有交易开仓的那一栏才会被用于信号。 。
交易有一个开盘时间 OrderOpenTime(); 有一个函数可以按时间 显示条数 iBarShift(); 使用这个条数作为"...我们只使用交易开盘的条数作为信号..."。
 
artmedia70:
交易有一个开盘时间OrderOpenTime(); 还有一个函数会按时间显示条数iBarShift(); 这是条数,并把它作为"...对于我们使用的信号,只有交易打开的条数..."。

谢谢,我会研究的。
 
Zolotai:

我不太明白你的意思?如果没有文件(没有打开)或在读取时有错误。信息被显示出来,但你没有得到任何消息...

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ|FILE_WRITE,"; ");//打开文件。

如果FILE_WRITE没有与FILE_READ结合,一个长度为零的文件将被打开。即使在文件被打开之前,文件中还有数据,也会被销毁。
如果你想把数据追加到一个现有的文件,你需要用FILE_READ | FILE_WRITE组合打开它。.
如果FILE_READ没有与FILE_WRITE结合,只有当文件已经存在时才会被打开。如果该文件不存在,可以使用FILE_WRITE模式创建它。