如何编码? - 页 187 1...180181182183184185186187188189190191192193194...347 新评论 dedreko 2009.06.27 19:49 #1861 是的,我想做3个步骤 举个例子。 达到15级,回来10级 走到30步,再回来15步 达到45点,再回来15点 或者在止损 点关闭。 我将拍一张照片,并试图更好地解释。 dedreko 2009.06.28 06:53 #1862 fosgate_r: 这对我来说是件新鲜事。那么,亏损的交易结束后,总是需要等待它反弹,对吗? 如果它不反弹呢? 我们会在最初的SL上收盘吗? 谢谢你,我已经做出来了,现在正在尝试优化,以获得良好的损失保护效果。 SPACECHIMP 2009.06.30 01:27 #1863 我试图找到关于绘制直线的信息,就像RSI指标那样。我有两个数字,我想在同一个指标上绘制成直线。 我知道这将涉及到某种数组,但我不知道哪一组代码可以实现这一目标。 Arshed Qureshi 2009.06.30 04:28 #1864 指标缓冲器 SPACECHIMP: 我试图找到关于绘制直线的信息,就像RSI指标一样。我有两个数字,我想在同一个指标上绘制成直线,我知道这将涉及到某种数组,但我不知道哪一组代码可以实现这一点。 请阅读这篇文章 新手的MQL4语言。自定义指标(第一部分) - MQL4文章 [删除] 2009.06.30 06:54 #1865 smb1970: 嗨,伙计们。我不知道是否有人熟悉乔治-史密斯的《外汇制造-EZ》。 我目前正在审阅他的作品,不知道是否有人为他使用的奥斯卡振荡器编了一个指标? 其公式为 让A=过去8个柱子(包括这个)的最高点 让B = 过去八个柱子(包括这一个)中的最低点 让C = 当前条形图的收盘价 让X =之前的振荡器数字(奥斯卡)。 今天的 "粗略 "震荡指标等于(C-B)除以(A-B)乘以100。 接下来我们 "平滑 "我们的粗略数字(让我们称之为Y),像这样。 最终振荡器的数量=((X除以3)乘以2),加上(Y除以3)。 如果有人编过这样的代码,或能编出这样的代码,将非常感谢。 Regards Steve 我自己也曾尝试过这样的编码。有谁能评论一下这是否能达到我所想的效果。如果我手动计算这些数字,其数值似乎并不完全吻合。另外,它只从指标放置的时间开始。我希望它也能显示历史值。 #property indicator_separate_window #属性 indicator_buffers 1 #属性 indicator_color1 Red //---- 缓冲区 double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //|自定义指标 初始化函数 | //+------------------------------------------------------------------+ int init() { //---- 指标 SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); string short_name = "Oscar Indicator"; IndicatorShortName(short_name)。 //---- return(1); } //+------------------------------------------------------------------+ //|Custor指标去初始化函数 //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //|自定义指标迭代函数| //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted()。 //----,检查是否有错误 如果(counted_bars<0)返回(-1)。 //---- 最后一个被计算的柱子将被重新计算。 如果(counted_bars>0) counted_bars--; int pos=Bars-counted_bars。 //---- 主计算循环 双重x。 x=50; while(pos>=0) { 双重a, b, c, y, osc; //让A=过去八个小节(包括这个小节)的最高点 a=高点。 //让B = 过去8个柱子的最低点(包括这一个)。 b=低点。 //let C = 当前条形图的收盘价 c = Close[pos]; //let X = 上一个振荡器数字(Oscar)。 //今天的 "粗略 "振荡器等于(C-B)除以(A-B)乘以100。 y=((C-B)/(A-B))*100。 //接下来我们像这样 "平滑 "我们的粗略数字(让我们称之为Y)。 //最终振荡器的数量=((X除以3)乘以2),加上(Y除以3)。 osc=((X/3)*2)+(Y/3)。 ExtMapBuffer1[pos]= osc ; pos--。 } 返回(0)。 } 希望得到任何帮助。 谢谢你,史蒂夫 ICustom函数 问吧! [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 Ricx 2009.06.30 08:05 #1866 询问...模式_交易 嗨,谁能举例说明MODE_TRADES的用途? 谢谢。 Mladen Rakic 2009.06.30 08:34 #1867 对smb1970来说--这就是它。 //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red #property indicator_maximum 100 #property indicator_minimum 0 // // // // // extern int OscPeriod = 8; extern int OscPrice = PRICE_CLOSE; double oscBuffer[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ // // // // // int init() { SetIndexBuffer(0,oscBuffer); IndicatorShortName("Osc ("+OscPeriod+")"); return(0); } int deinit() { return(0); } int start() { int counted_bars=IndicatorCounted(); int i,limit; if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; // // // // // for(i=limit; i>=0; i--) { double price = iMA(NULL,0,1,0,MODE_SMA,OscPrice,i); double high = High[ArrayMaximum(High,OscPeriod,i)]; double low = Low[ArrayMinimum(Low,OscPeriod,i)]; // // // // // if (high!=low) double raw = 100.00*(price-low)/(high-low); else raw = 0.00; oscBuffer= oscBuffer*2.0/3.0 + raw/3.0; } return(0); } 但是,也请看一下图片:上面是 "奥斯卡",下面是随机指数(8)的Ema(5),或者更简单地说,下面是随机指数(8,5,1),信号线 设置为指数。所以 "Oscar "只是随机指数的一条信号线。 附加的文件: oscar.gif 21 kb How to code? 精英指标 :) 更好的布林线... [删除] 2009.06.30 11:01 #1868 谢谢! 谢谢mladen,这不仅是非常有用的,而且也是非常有启示意义的! [删除] 2009.07.02 11:22 #1869 新生儿在编码方面需要一些帮助 :-( 大家好。 我在这里需要一些不同的帮助 。 我有一些代码,将寻找不同指标之间的协议。 一旦它们达成一致,我希望能以我在图表中描述的方式进入交易。 到目前为止,我可以输入第一笔 "买入 "交易,但它并不是只输入一笔交易....,而是输入多达8笔交易。 然后,如果市场对我不利,我就会进入一个 "应急交易",尽管市场对我不利,我还是会再次买入/卖出。 如果有人能告诉我正确的代码应该是什么样子的,我将非常感激。 不确定这些图片是否会显示,但为了以防万一,我也把它们作为附件。 这是我的有缺陷的代码,应该执行交易...... while (execute_trade ==5) {if ( OrdersTotal() == buy_trade1 ) //buy_trade1 = 1......这在下了一个订单后就停止了......但还没有发挥作用 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point)。 execute_trade=0。 如果(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) Print("My ticket is: " , ticket); { buy1 = OrderOpenPrice(); //获取第一笔订单的价格并将其推入该变量中 // Comment("订单#1的开盘价 是" , OrderOpenPrice() + " " + buy1 + " 小于 " + (buy1-0.0030))。 如果(buy1 >= (buy1-0.0030)) { //if ( OrdersTotal() <= buy_trade1 ) //这将在1个订单下达后停止。 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point) 。 //execute_trade=0。 } } else Print("OrderSelect返回错误为",GetLastError())。 } How do I capture How to code? 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. [删除] 2009.07.02 12:27 #1870 新手在编码方面需要一些帮助 大家好。 我在这里需要一些不同的帮助。我有一些代码,将寻找不同指标之间的协议。一旦它们达成一致,我想让交易以我在图表图片中描述的方式进入。到目前为止,我可以输入第一笔 "买入 "交易,但它并不是只输入一笔交易....,而是输入多达8笔交易。然后,如果市场对我不利,我就会进入一个 "应急交易",尽管市场对我不利,我还是会再次买入/卖出。如果有人能告诉我正确的代码应该是什么样子的,我将非常感激。 我不确定这些图片是否会显示,但为了以防万一,我也把它们作为附件。 图1 图2 这是我有缺陷的代码,应该是执行交易的代码... while (execute_trade ==5) {if ( OrdersTotal() == buy_trade1 ) //buy_trade1 = 1......这在下了一个订单后就停止了......但还没有发挥作用 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+ TakeProfit*Point)。 execute_trade=0。 如果(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) Print("My ticket is: " , ticket); { buy1 = OrderOpenPrice(); //获取第一笔订单的价格并将其推入该变量中 // Comment("订单#1的开盘价 是" , OrderOpenPrice() + " " + buy1 + " 小于 " + (buy1-0.0030))。 如果(buy1 >= (buy1-0.0030)) { //if ( OrdersTotal() <= buy_trade1 ) //这将会在1个订单被下达后停止。 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+ TakeProfit*Point)。 //execute_trade=0。 } } 否则 Print("OrderSelect返回错误为",GetLastError())。 } 附加的文件: the_perfect_buy_and_sell.jpg 118 kb contingency_trades_2.jpg 156 kb How do I capture How to code? How do I control 1...180181182183184185186187188189190191192193194...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,我想做3个步骤
举个例子。
达到15级,回来10级
走到30步,再回来15步
达到45点,再回来15点
或者在止损 点关闭。
我将拍一张照片,并试图更好地解释。
这对我来说是件新鲜事。
那么,亏损的交易结束后,总是需要等待它反弹,对吗?
如果它不反弹呢?
我们会在最初的SL上收盘吗?谢谢你,我已经做出来了,现在正在尝试优化,以获得良好的损失保护效果。
我试图找到关于绘制直线的信息,就像RSI指标那样。我有两个数字,我想在同一个指标上绘制成直线。
我知道这将涉及到某种数组,但我不知道哪一组代码可以实现这一目标。
指标缓冲器
我试图找到关于绘制直线的信息,就像RSI指标一样。我有两个数字,我想在同一个指标上绘制成直线,我知道这将涉及到某种数组,但我不知道哪一组代码可以实现这一点。
请阅读这篇文章
新手的MQL4语言。自定义指标(第一部分) - MQL4文章
嗨,伙计们。
我不知道是否有人熟悉乔治-史密斯的《外汇制造-EZ》。
我目前正在审阅他的作品,不知道是否有人为他使用的奥斯卡振荡器编了一个指标?
其公式为
让A=过去8个柱子(包括这个)的最高点
让B = 过去八个柱子(包括这一个)中的最低点
让C = 当前条形图的收盘价
让X =之前的振荡器数字(奥斯卡)。
今天的 "粗略 "震荡指标等于(C-B)除以(A-B)乘以100。
接下来我们 "平滑 "我们的粗略数字(让我们称之为Y),像这样。
最终振荡器的数量=((X除以3)乘以2),加上(Y除以3)。
如果有人编过这样的代码,或能编出这样的代码,将非常感谢。
Regards Steve我自己也曾尝试过这样的编码。有谁能评论一下这是否能达到我所想的效果。如果我手动计算这些数字,其数值似乎并不完全吻合。另外,它只从指标放置的时间开始。我希望它也能显示历史值。
#property indicator_separate_window
#属性 indicator_buffers 1
#属性 indicator_color1 Red
//---- 缓冲区
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//|自定义指标 初始化函数 |
//+------------------------------------------------------------------+
int init()
{
//---- 指标
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
string short_name = "Oscar Indicator";
IndicatorShortName(short_name)。
//----
return(1);
}
//+------------------------------------------------------------------+
//|Custor指标去初始化函数
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted()。
//----,检查是否有错误
如果(counted_bars<0)返回(-1)。
//---- 最后一个被计算的柱子将被重新计算。
如果(counted_bars>0) counted_bars--;
int pos=Bars-counted_bars。
//---- 主计算循环
双重x。
x=50;
while(pos>=0)
{
双重a, b, c, y, osc;
//让A=过去八个小节(包括这个小节)的最高点
a=高点。
//让B = 过去8个柱子的最低点(包括这一个)。
b=低点。
//let C = 当前条形图的收盘价
c = Close[pos];
//let X = 上一个振荡器数字(Oscar)。
//今天的 "粗略 "振荡器等于(C-B)除以(A-B)乘以100。
y=((C-B)/(A-B))*100。
//接下来我们像这样 "平滑 "我们的粗略数字(让我们称之为Y)。
//最终振荡器的数量=((X除以3)乘以2),加上(Y除以3)。
osc=((X/3)*2)+(Y/3)。
ExtMapBuffer1[pos]= osc ;
pos--。
}
返回(0)。
}
希望得到任何帮助。
谢谢你,史蒂夫
询问...模式_交易
嗨,谁能举例说明MODE_TRADES的用途?
谢谢。
对smb1970来说--这就是它。
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_maximum 100
#property indicator_minimum 0
//
//
//
//
//
extern int OscPeriod = 8;
extern int OscPrice = PRICE_CLOSE;
double oscBuffer[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//
int init()
{
SetIndexBuffer(0,oscBuffer);
IndicatorShortName("Osc ("+OscPeriod+")");
return(0);
}
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//
//
//
//
//
for(i=limit; i>=0; i--)
{
double price = iMA(NULL,0,1,0,MODE_SMA,OscPrice,i);
double high = High[ArrayMaximum(High,OscPeriod,i)];
double low = Low[ArrayMinimum(Low,OscPeriod,i)];
//
//
//
//
//
if (high!=low)
double raw = 100.00*(price-low)/(high-low);
else raw = 0.00;
oscBuffer= oscBuffer*2.0/3.0 + raw/3.0;
}
return(0);
}但是,也请看一下图片:上面是 "奥斯卡",下面是随机指数(8)的Ema(5),或者更简单地说,下面是随机指数(8,5,1),信号线 设置为指数。所以 "Oscar "只是随机指数的一条信号线。
谢谢!
谢谢mladen,这不仅是非常有用的,而且也是非常有启示意义的!
新生儿在编码方面需要一些帮助 :-(
大家好。
我在这里需要一些不同的帮助 。 我有一些代码,将寻找不同指标之间的协议。 一旦它们达成一致,我希望能以我在图表中描述的方式进入交易。 到目前为止,我可以输入第一笔 "买入 "交易,但它并不是只输入一笔交易....,而是输入多达8笔交易。 然后,如果市场对我不利,我就会进入一个 "应急交易",尽管市场对我不利,我还是会再次买入/卖出。 如果有人能告诉我正确的代码应该是什么样子的,我将非常感激。
不确定这些图片是否会显示,但为了以防万一,我也把它们作为附件。
这是我的有缺陷的代码,应该执行交易......
while (execute_trade ==5)
{if ( OrdersTotal() == buy_trade1 ) //buy_trade1 = 1......这在下了一个订单后就停止了......但还没有发挥作用
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point)。
execute_trade=0。
如果(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("My ticket is: " , ticket);
{
buy1 = OrderOpenPrice(); //获取第一笔订单的价格并将其推入该变量中
// Comment("订单#1的开盘价 是" , OrderOpenPrice() + " " + buy1 + " 小于 " + (buy1-0.0030))。
如果(buy1 >= (buy1-0.0030))
{
//if ( OrdersTotal() <= buy_trade1 ) //这将在1个订单下达后停止。
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point) 。
//execute_trade=0。
}
} else
Print("OrderSelect返回错误为",GetLastError())。
}
新手在编码方面需要一些帮助
大家好。
我在这里需要一些不同的帮助。我有一些代码,将寻找不同指标之间的协议。一旦它们达成一致,我想让交易以我在图表图片中描述的方式进入。到目前为止,我可以输入第一笔 "买入 "交易,但它并不是只输入一笔交易....,而是输入多达8笔交易。然后,如果市场对我不利,我就会进入一个 "应急交易",尽管市场对我不利,我还是会再次买入/卖出。如果有人能告诉我正确的代码应该是什么样子的,我将非常感激。
我不确定这些图片是否会显示,但为了以防万一,我也把它们作为附件。
图1
图2
这是我有缺陷的代码,应该是执行交易的代码...
while (execute_trade ==5)
{if ( OrdersTotal() == buy_trade1 ) //buy_trade1 = 1......这在下了一个订单后就停止了......但还没有发挥作用
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+ TakeProfit*Point)。
execute_trade=0。
如果(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("My ticket is: " , ticket);
{
buy1 = OrderOpenPrice(); //获取第一笔订单的价格并将其推入该变量中
// Comment("订单#1的开盘价 是" , OrderOpenPrice() + " " + buy1 + " 小于 " + (buy1-0.0030))。
如果(buy1 >= (buy1-0.0030))
{
//if ( OrdersTotal() <= buy_trade1 ) //这将会在1个订单被下达后停止。
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+ TakeProfit*Point)。
//execute_trade=0。
}
}
否则
Print("OrderSelect返回错误为",GetLastError())。
}