我写指标、EA,不再是免费的了 :) - 页 6 12345678 新评论 [Deleted] 2009.01.07 20:05 #51 KimIV >> : 功能参数不正确。准确检查你传递给OrderClose()函数的内容。检查了一下...真的不知道问题出在哪里......我已经尝试了很多不同的东西%( [Deleted] 2009.01.07 20:11 #52 又是晚上好 :) 有了新的要求。我意识到,无论如何,我自己是无法弄清楚的。 我要求在WATR指标的基础上编写一个EA(EA代码如下)。当指标出现转折时,它会关闭未平仓的订单(如果它没有被SL或TP关闭),并按照指标显示的方向打开一个新订单。我们只在反转点准确地开出一个订单。然后我们等到EA的下一次反转。 输入参数:手数、SL、TP、滑点。我想我没有忘记任何事情 :) 问候,斯维特拉娜。ICQ 320355718 该指标的代码。 //+------------------------------------------------------------------+ //| WATR.mq4 //|由WizardSerg在文章konkop下撰写的|。 //| "现代交易" #4/2001 | //| http://www.wizardserg.inweb.ru | //| wizardserg@mail.ru | //+------------------------------------------------------------------+ #财产版权 "由WizardSerg在<现代交易>#4/2001的konkop文章下撰写" #属性链接 "http://www.wizardserg.inweb.ru" //---- #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Coral #属性 indicator_color2 DodgerBlue //---- 输入参数 外部的WATR_K = 10。 外置双WATR_M = 4.0。 外在的内在的ATR=21。 //---- 缓冲区 双倍ExtMapBufferUp[]。 双重ExtMapBufferDown[]。 //+------------------------------------------------------------------+ //|自定义指标初始化功能 //+------------------------------------------------------------------+ int init() { IndicatorBuffers(2)。 SetIndexBuffer(0, ExtMapBufferUp)。 ArraySetAsSeries(ExtMapBufferUp, true)。 SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2); SetIndexBuffer(1, ExtMapBufferDown)。 ArraySetAsSeries(ExtMapBufferDown, true)。 SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 2); IndicatorShortName("WATR(" + WATR_K + " , " + WATR_M + " )")。 SetIndexLabel(0, "WATR_Up")。 SetIndexLabel(1, "WATR_Dn")。 return(0); } //+------------------------------------------------------------------+ //|自定义指标去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- return(0); } //+------------------------------------------------------------------+ //| 自定义指标功能| //+------------------------------------------------------------------+ bool AntiTrendBar(i) { bool res = (TrendUp(i) && (Close[i] < Open[i]) || (!TrendUp(i) && (Close[i] > Open[i]) 。 return(res)。 } //+------------------------------------------------------------------+ //|自定义指标函数|| //+------------------------------------------------------------------+ double CalcIndicValue(int i, bool trend) { double res = Close[i]; 如果(趋势) res -= (WATR_K*Point + WATR_M*iATR(NULL, 0, ATR, i)) 否则 res += (WATR_K*Point + WATR_M*iATR(NULL, 0, ATR, i))。 return(res)。 } //+------------------------------------------------------------------+ //| 自定义指标功能| //+------------------------------------------------------------------+ bool TrendUp(int i) { return((Close[i+1] > ExtMapBufferUp[i+1]) && (ExtMapBufferUp[i+1] != EMPTY_VALUE)) } //+------------------------------------------------------------------+ //|自定义指标迭代函数| //+------------------------------------------------------------------+ int start() { int限制。 int counted_bars = IndicatorCounted()。 //----,最后计数的条形图将被重新计算。 //---- 第一个指标值==价格-1点。 //也就是说,它认为趋势是向上的 ExtMapBufferUp[Bars] = Close[Bars] - WATR_K*Point; // limit = (counted_bars > 0) ?(Bars - counted_bars) : (Bars - 1); 极限=Bars - counted_bars。 //---- 主循环 for(int i = limit; i >= 0; i--) { 如果(AntiTrendBar(i)) { ExtMapBufferUp[i] = ExtMapBufferUp[i+1]; ExtMapBufferDown[i] = ExtMapBufferDown[i+1]; } 否则 { 如果(TrendUp(i)) { ExtMapBufferUp[i] = CalcIndicValue(i, true)。 如果(ExtMapBufferUp[i] < ExtMapBufferUp[i+1]) ExtMapBufferUp[i] = ExtMapBufferUp[i+1]; ExtMapBufferDown[i] = EMPTY_VALUE。 } 否则 { ExtMapBufferDown[i] = CalcIndicValue(i, false)。 如果(ExtMapBufferDown[i] > ExtMapBufferDown[i+1]) ExtMapBufferDown[i] = ExtMapBufferDown[i+1]; ExtMapBufferUp[i] = EMPTY_VALUE。 } } // 越过价格 如果(TrendUp(i) && (Close[i] < ExtMapBufferUp[i]) { ExtMapBufferDown[i] = CalcIndicValue(i, false)。 ExtMapBufferUp[i] = EMPTY_VALUE。 } 如果((!TrendUp(i))&& (Close[i] > ExtMapBufferDown[i]) { ExtMapBufferUp[i] = CalcIndicValue(i, true)。 ExtMapBufferDown[i] = EMPTY_VALUE。 } } return(0); } //+------------------------------------------------------------------+ I write indicators, EAs, 编码帮助 问吧! Artem Titarenko 2009.01.07 20:34 #53 rusmos писал(а)>> 对不起,请你为以下问题写一些代码--第一手,例如0.1,接下来的每一手都增加一定的给定值。 预先感谢你。 搜索这个论坛,这种已经问过和写过的... 在任何情况下,都有类似的东西... [删除] 2009.01.07 20:36 #54 StatBars >> : 在这个论坛上搜索一下,有人问过这个问题,也有人写过... 谢谢 >> 我在论坛上打探了大约三个小时,发现了很多,但不是这个。 [删除] 2009.01.07 20:40 #55 StatBars >> : 搜索这个论坛,以前有人问过,也有人写过...... 而代码可能最多只有10个术语。 但我想他们在这里不会去做小事。 Ярослав 2009.01.07 20:42 #56 rusmos >> : 而代码可能最多只有10个术语。 但我想,专业人士在这里不会为小事而去。 如果能将这项任务正式化,不仅仅是大概,而是具体化,以便有人承担这项任务,那就更好了。 Dmitry Fedoseev 2009.01.07 20:45 #57 rusmos писал(а)>> 而代码可能最多是10个术语。 但专业人员可能不会在这里玩弄这些小东西。 请正确表述你的问题。第一单,后续的。第一个是来自什么?从宇宙的开始,或者从基督来的那一天,或者从世界的创造,或者也许从你吃完早餐去散步的那一刻起?问题是什么,答案是什么。 Artem Titarenko 2009.01.07 20:50 #58 rusmos писал(а)>> 而代码可能最多只有10个术语。 但我想他们在这里不会去做这些小事。 extern double RISK=20; lotsize=MarketInfo(Symbol(),MODE_LOTSIZE)*0.01; Balance=AccountBalance()*( RISK/100); lots=NormalizeDouble( Balance/ lotsize,2); // - это и есть лот для открытия позиции 该代码不仅增加了手数,也减少了手数,这一切都取决于库房,库房上升--手数上升......。我想你需要这个... [删除] 2009.01.07 20:52 #59 sol >> : 如果能将这项任务正式化,不仅仅是大概,而是具体化,以便有人承担这项任务,那就更好了。 好的。第一批是买入0.1批。作为回应,SellStop被立即设置在距离底部20点的0.2手(即增加0.1)。 此外,如果卖出已经触发,在答案中,我们将Bystop设置为0.3手(即最后一手再增加0.1手),原则上为某某某。 重要的是,地段增加的幅度应该由你来决定调整。 嗯,分别是两个有趣的选择。加法和乘法。 >>唉,我想就是这样了)。 [删除] 2009.01.07 20:54 #60 StatBars >> : 代码不仅增加了手数,也减少了手数,这一切都取决于库房,库房上升--手数上升......。我想你需要这个... 存款的大小并不重要。 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
功能参数不正确。准确检查你传递给OrderClose()函数的内容。
检查了一下...真的不知道问题出在哪里......我已经尝试了很多不同的东西%(
又是晚上好 :)
有了新的要求。我意识到,无论如何,我自己是无法弄清楚的。
我要求在WATR指标的基础上编写一个EA(EA代码如下)。当指标出现转折时,它会关闭未平仓的订单(如果它没有被SL或TP关闭),并按照指标显示的方向打开一个新订单。我们只在反转点准确地开出一个订单。然后我们等到EA的下一次反转。
输入参数:手数、SL、TP、滑点。我想我没有忘记任何事情 :)
问候,斯维特拉娜。ICQ 320355718
该指标的代码。
//+------------------------------------------------------------------+
//| WATR.mq4
//|由WizardSerg在文章konkop下撰写的|。
//| "现代交易" #4/2001 |
//| http://www.wizardserg.inweb.ru |
//| wizardserg@mail.ru |
//+------------------------------------------------------------------+
#财产版权 "由WizardSerg在<现代交易>#4/2001的konkop文章下撰写"
#属性链接 "http://www.wizardserg.inweb.ru"
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Coral
#属性 indicator_color2 DodgerBlue
//---- 输入参数
外部的WATR_K = 10。
外置双WATR_M = 4.0。
外在的内在的ATR=21。
//---- 缓冲区
双倍ExtMapBufferUp[]。
双重ExtMapBufferDown[]。
//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(2)。
SetIndexBuffer(0, ExtMapBufferUp)。
ArraySetAsSeries(ExtMapBufferUp, true)。
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);
SetIndexBuffer(1, ExtMapBufferDown)。
ArraySetAsSeries(ExtMapBufferDown, true)。
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 2);
IndicatorShortName("WATR(" + WATR_K + " , " + WATR_M + " )")。
SetIndexLabel(0, "WATR_Up")。
SetIndexLabel(1, "WATR_Dn")。
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//| 自定义指标功能|
//+------------------------------------------------------------------+
bool AntiTrendBar(i)
{
bool res = (TrendUp(i) && (Close[i] < Open[i]) ||
(!TrendUp(i) && (Close[i] > Open[i]) 。
return(res)。
}
//+------------------------------------------------------------------+
//|自定义指标函数||
//+------------------------------------------------------------------+
double CalcIndicValue(int i, bool trend)
{
double res = Close[i];
如果(趋势)
res -= (WATR_K*Point + WATR_M*iATR(NULL, 0, ATR, i))
否则
res += (WATR_K*Point + WATR_M*iATR(NULL, 0, ATR, i))。
return(res)。
}
//+------------------------------------------------------------------+
//| 自定义指标功能|
//+------------------------------------------------------------------+
bool TrendUp(int i)
{
return((Close[i+1] > ExtMapBufferUp[i+1]) &&
(ExtMapBufferUp[i+1] != EMPTY_VALUE))
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
int限制。
int counted_bars = IndicatorCounted()。
//----,最后计数的条形图将被重新计算。
//---- 第一个指标值==价格-1点。
//也就是说,它认为趋势是向上的
ExtMapBufferUp[Bars] = Close[Bars] - WATR_K*Point;
// limit = (counted_bars > 0) ?(Bars - counted_bars) : (Bars - 1);
极限=Bars - counted_bars。
//---- 主循环
for(int i = limit; i >= 0; i--)
{
如果(AntiTrendBar(i))
{
ExtMapBufferUp[i] = ExtMapBufferUp[i+1];
ExtMapBufferDown[i] = ExtMapBufferDown[i+1];
}
否则
{
如果(TrendUp(i))
{
ExtMapBufferUp[i] = CalcIndicValue(i, true)。
如果(ExtMapBufferUp[i] < ExtMapBufferUp[i+1])
ExtMapBufferUp[i] = ExtMapBufferUp[i+1];
ExtMapBufferDown[i] = EMPTY_VALUE。
}
否则
{
ExtMapBufferDown[i] = CalcIndicValue(i, false)。
如果(ExtMapBufferDown[i] > ExtMapBufferDown[i+1])
ExtMapBufferDown[i] = ExtMapBufferDown[i+1];
ExtMapBufferUp[i] = EMPTY_VALUE。
}
}
// 越过价格
如果(TrendUp(i) && (Close[i] < ExtMapBufferUp[i])
{
ExtMapBufferDown[i] = CalcIndicValue(i, false)。
ExtMapBufferUp[i] = EMPTY_VALUE。
}
如果((!TrendUp(i))&& (Close[i] > ExtMapBufferDown[i])
{
ExtMapBufferUp[i] = CalcIndicValue(i, true)。
ExtMapBufferDown[i] = EMPTY_VALUE。
}
}
return(0);
}
//+------------------------------------------------------------------+
对不起,请你为以下问题写一些代码--第一手,例如0.1,接下来的每一手都增加一定的给定值。
预先感谢你。
搜索这个论坛,这种已经问过和写过的...
在任何情况下,都有类似的东西...
在这个论坛上搜索一下,有人问过这个问题,也有人写过...
谢谢 >> 我在论坛上打探了大约三个小时,发现了很多,但不是这个。
搜索这个论坛,以前有人问过,也有人写过......
而代码可能最多只有10个术语。
但我想他们在这里不会去做小事。
而代码可能最多只有10个术语。
但我想,专业人士在这里不会为小事而去。
如果能将这项任务正式化,不仅仅是大概,而是具体化,以便有人承担这项任务,那就更好了。
而代码可能最多是10个术语。
但专业人员可能不会在这里玩弄这些小东西。
请正确表述你的问题。第一单,后续的。第一个是来自什么?从宇宙的开始,或者从基督来的那一天,或者从世界的创造,或者也许从你吃完早餐去散步的那一刻起?问题是什么,答案是什么。
而代码可能最多只有10个术语。
但我想他们在这里不会去做这些小事。
如果能将这项任务正式化,不仅仅是大概,而是具体化,以便有人承担这项任务,那就更好了。
好的。第一批是买入0.1批。作为回应,SellStop被立即设置在距离底部20点的0.2手(即增加0.1)。
此外,如果卖出已经触发,在答案中,我们将Bystop设置为0.3手(即最后一手再增加0.1手),原则上为某某某。
重要的是,地段增加的幅度应该由你来决定调整。
嗯,分别是两个有趣的选择。加法和乘法。
>>唉,我想就是这样了)。
代码不仅增加了手数,也减少了手数,这一切都取决于库房,库房上升--手数上升......。我想你需要这个...
存款的大小并不重要。