如何编码? - 页 313 1...306307308309310311312313314315316317318319320...347 新评论 dasio 2012.08.26 10:27 #3121 你好。 是否可以用代码只修改当前活动图表符号的买单或卖单? 这对我使用WindowsPriceonDropped函数打开订单的脚本将非常有用。 谢谢你 Mladen Rakic 2012.08.26 16:30 #3122 ... dasio, 试试这样的方法。 for (int i=OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==false) continue; if (OrderSymbol()!=Symbol()) continue; if (OrderType()==OP_BUY || OrderType()==OP_SELL) { // do the proccessing you wish here } } dasio: 你好。是否可以用代码只修改当前活动图表符号的买单或卖单? 这对我使用WindowsPriceonDropped函数打开订单的脚本将非常有用。 谢谢你 cyber1 2012.09.02 14:44 #3123 谁想挑战一下? 我需要一些代码来完成以下工作,见所附截图。这将是购买交易。 我已经尝试了一个for循环,一个混乱的if条件,都没有产生我想要的结果。 这看起来很简单,但我无法让它工作。 附加的文件: maexample.jpg 54 kb Mladen Rakic 2012.09.03 08:01 #3124 你的输入条件可以写成类似这样。 double pipMultiplier = 1; if (Digits==3 || Digits==5) pipMultiplier = 10; double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1); bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier)); if (openBuy) { // your code here } cyber1: 我需要一些代码来完成以下工作,见所附截图。这将是买入交易。我已经尝试了for循环和一些乱七八糟的if条件,但都没有产生我想要的结果。 它看起来很简单,但我无法让它工作。 cyber1 2012.09.03 08:43 #3125 mladen: 你的输入条件可以写成类似这样。 double pipMultiplier = 1; if (Digits==3 || Digits==5) pipMultiplier = 10; double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1); bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier)); if (openBuy) { // your code here } 你发布的代码会给我横跨移动平均线 的柱子的信号。但是我还需要一种方法,可以在跨度条之后的任何条上进入交易,只要不超过MA+5条就可以。我不在跨栏杆上发出买入信号的原因是有另一个指标必须显示为真值,在跨栏杆上可能不是真值,但如果它在跨栏杆后5栏以内的任何栏杆上是真值,并且没有超过MA+5的限制,我仍然可以进行交易。我不是要做多笔交易,只是在每个设置中做一笔。 以下是我到目前为止的情况。在这一点上,我只在符合条件的柱子下面用箭头标记,只买入。一旦我解决了这个问题,我就会把我的代码放进去以执行订单。我知道这看起来很简单,但除非我错过了一些明显的东西,否则并不简单。 //+------------------------------------------------------------------+ double Poin; //+------------------------------------------------------------------+ //| Custom initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators if (Point==0.00001) Poin=0.0001; else { if (Point==0.001) Poin=0.01; else Poin=Point; } //---- return(0); } //+------------------------------------------------------------------+ // + //+------------------------------------------------------------------+ int deinit(){ return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start(){ int MAM1StartBar=1; int M1MAEntryPoint1=0; int M1MAEntryPoint2=5; string sObjName; //------Indicators-------------// double MAM0= iMA(NULL,0,20,0,0,0,MAM1StartBar); double MAM1= iMA(NULL,0,20,0,0,0,MAM1StartBar+1); double M1High0 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar),Digits); double M1High1 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+1),Digits); double M1High2 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+2),Digits); double M1High3 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+3),Digits); double M1High4 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+4),Digits); double M1High5 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+5),Digits); double M1Low0 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar),Digits); double M1Low1 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+1),Digits); double M1Low2 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+2),Digits); double M1Low3 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+3),Digits); double M1Low4 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+4),Digits); double M1Low5 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+5),Digits); // double MAM1TRL1=NormalizeDouble(MAM0+M1MAEntryPoint1*Poin,Digits); // double MAM1TRL2=NormalizeDouble(MAM0+M1MAEntryPoint2*Poin,Digits); //Blue arrow indicates straddle bar if(M1High0>= MAM0 && M1Low0<=MAM0){ sObjName="Test_BLine1"+Time[MAM1StartBar]; ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1.5*Poin); ObjectSet(sObjName, OBJPROP_ARROWCODE, 241); ObjectSet(sObjName, OBJPROP_COLOR, Blue); } //Aqua arrow indicates straddle bar+1 if(M1Low1=MAM0){ if(M1High1<=MAM0+M1MAEntryPoint2*Poin){ if(M1Low0 > MAM0){ sObjName="Test_BLine2"+Time[MAM1StartBar]; ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1*Poin); ObjectSet(sObjName, OBJPROP_ARROWCODE, 241); ObjectSet(sObjName, OBJPROP_COLOR, Aqua); } } } //---- return(0); } How to code? [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 编码帮助 cyber1 2012.09.03 21:42 #3126 在这个截图中,你需要在第4条终止交易,因为第3条超过了MA+5的限制,这意味着在第4条你需要检查 第3条是否超过了MA+5的限制,它确实超过了,所以这个交易设置就结束了。 这里所有的5个小节都是合格的,因为它们都没有超过MA+5的限制。 附加的文件: maexample_2.jpg 47 kb maexample_3.jpg 46 kb cyber1 2012.09.03 22:31 #3127 在这个截图中,你需要在第4条终止交易,因为第3条超过了MA+5的限制,这意味着在第4条你需要检查 第3条是否超过了MA+5的限制,它确实超过了,这就是这个交易设置的结束。 这里所有的5个小节都是合格的,因为它们都没有超过MA+5的限制。 Mladen Rakic 2012.09.04 06:56 #3128 ... cyber1 在你的例子中,就我看来,为了能够像你描述的那样中止,你还必须知道未来(因为在 "中止 "条形图之前,规则是适用的,并且会返回一个走势信号)。 另一方面,如果你试图测试所有的条形图,以获得进入的条件,最终你将总是有一个 "规则的破坏",将无法进入该位置。 cyber1: 在这个截图中,你需要在第4条终止交易,因为第3条超过了MA+5的限制,这意味着在第4条你需要检查第3条是否超过了MA+5的限制,它确实超过了,这就是这个交易设置的结束。 这里所有的5个柱子都符合条件,因为它们都没有超过MA+5的限制。 [删除] 2012.09.12 21:49 #3129 关闭所有公开交易的EA 谁能帮我做这个EA? 这个EA将在达到目标利润和损失时关闭所有未结的交易对。 当它关闭所有的交易时,然后开始监控已开的交易。 我有一个限制人才来做这个。 这个EA与每个交易对的主EA分开。 lucmat 2012.09.15 08:12 #3130 信号和阻力/支撑dinamyc线。 你能帮我把这个指标翻译成MT4语言吗? a:=(hhv(close,tpr)+llv(close,tpr)+close)/3; b:=(a1*2)-hhv(close,tpr)。 移动b:=mov(b,tpr,simple)。 c:=(a1*2)-llv(close,tpr); 移动c:=mov(c,tpr,simple); d:=(hhv(close,tpr/2)+llv(close,tpr/2)+close)/3; 移动d:=mov(d,tpr/2,simple)。 stream:=(b+c+d)/3; 移动流:=mov(stream,tpr,simple)。 hhv=最大周期值(所选时间段内收盘价 的最高值)。 llv=最小周期值(所选时间段内收盘价的最低值)。 tpr=时间段(从1到任何你想要的)。 mov=移动平均线。 输出必须有 "流 "和 "移动流"!即使它还有 "b"、"移动b"、"c"、"移动c"、"d "和 "移动d",也不是什么坏事! 谢谢。 这个论坛是伟大的...... Lucmat 附加的文件: immagine.jpg 258 kb 1...306307308309310311312313314315316317318319320...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好。
是否可以用代码只修改当前活动图表符号的买单或卖单?
这对我使用WindowsPriceonDropped函数打开订单的脚本将非常有用。
谢谢你
...
dasio,
试试这样的方法。
{
if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==false) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
{
// do the proccessing you wish here
}
}
你好。
是否可以用代码只修改当前活动图表符号的买单或卖单?
这对我使用WindowsPriceonDropped函数打开订单的脚本将非常有用。
谢谢你谁想挑战一下?
我需要一些代码来完成以下工作,见所附截图。这将是购买交易。
我已经尝试了一个for循环,一个混乱的if条件,都没有产生我想要的结果。
这看起来很简单,但我无法让它工作。
你的输入条件可以写成类似这样。
if (Digits==3 || Digits==5) pipMultiplier = 10;
double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);
bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier));
if (openBuy)
{
// your code here
}
我需要一些代码来完成以下工作,见所附截图。这将是买入交易。
我已经尝试了for循环和一些乱七八糟的if条件,但都没有产生我想要的结果。
它看起来很简单,但我无法让它工作。你的输入条件可以写成类似这样。
if (Digits==3 || Digits==5) pipMultiplier = 10;
double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);
bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier));
if (openBuy)
{
// your code here
}
你发布的代码会给我横跨移动平均线 的柱子的信号。但是我还需要一种方法,可以在跨度条之后的任何条上进入交易,只要不超过MA+5条就可以。我不在跨栏杆上发出买入信号的原因是有另一个指标必须显示为真值,在跨栏杆上可能不是真值,但如果它在跨栏杆后5栏以内的任何栏杆上是真值,并且没有超过MA+5的限制,我仍然可以进行交易。我不是要做多笔交易,只是在每个设置中做一笔。
以下是我到目前为止的情况。在这一点上,我只在符合条件的柱子下面用箭头标记,只买入。一旦我解决了这个问题,我就会把我的代码放进去以执行订单。我知道这看起来很简单,但除非我错过了一些明显的东西,否则并不简单。
//+------------------------------------------------------------------+
double Poin;
//+------------------------------------------------------------------+
//| Custom initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
if (Point==0.00001) Poin=0.0001;
else {
if (Point==0.001) Poin=0.01;
else Poin=Point;
}
//----
return(0);
}
//+------------------------------------------------------------------+
// +
//+------------------------------------------------------------------+
int deinit(){
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start(){
int MAM1StartBar=1;
int M1MAEntryPoint1=0;
int M1MAEntryPoint2=5;
string sObjName;
//------Indicators-------------//
double MAM0= iMA(NULL,0,20,0,0,0,MAM1StartBar);
double MAM1= iMA(NULL,0,20,0,0,0,MAM1StartBar+1);
double M1High0 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar),Digits);
double M1High1 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+1),Digits);
double M1High2 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+2),Digits);
double M1High3 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+3),Digits);
double M1High4 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+4),Digits);
double M1High5 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+5),Digits);
double M1Low0 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar),Digits);
double M1Low1 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+1),Digits);
double M1Low2 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+2),Digits);
double M1Low3 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+3),Digits);
double M1Low4 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+4),Digits);
double M1Low5 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+5),Digits);
// double MAM1TRL1=NormalizeDouble(MAM0+M1MAEntryPoint1*Poin,Digits);
// double MAM1TRL2=NormalizeDouble(MAM0+M1MAEntryPoint2*Poin,Digits);
//Blue arrow indicates straddle bar
if(M1High0>= MAM0 && M1Low0<=MAM0){
sObjName="Test_BLine1"+Time[MAM1StartBar];
ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1.5*Poin);
ObjectSet(sObjName, OBJPROP_ARROWCODE, 241);
ObjectSet(sObjName, OBJPROP_COLOR, Blue);
}
//Aqua arrow indicates straddle bar+1
if(M1Low1=MAM0){
if(M1High1<=MAM0+M1MAEntryPoint2*Poin){
if(M1Low0 > MAM0){
sObjName="Test_BLine2"+Time[MAM1StartBar];
ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1*Poin);
ObjectSet(sObjName, OBJPROP_ARROWCODE, 241);
ObjectSet(sObjName, OBJPROP_COLOR, Aqua);
}
}
}
//----
return(0);
}
在这个截图中,你需要在第4条终止交易,因为第3条超过了MA+5的限制,这意味着在第4条你需要检查 第3条是否超过了MA+5的限制,它确实超过了,所以这个交易设置就结束了。
这里所有的5个小节都是合格的,因为它们都没有超过MA+5的限制。
在这个截图中,你需要在第4条终止交易,因为第3条超过了MA+5的限制,这意味着在第4条你需要检查 第3条是否超过了MA+5的限制,它确实超过了,这就是这个交易设置的结束。
这里所有的5个小节都是合格的,因为它们都没有超过MA+5的限制。
...
cyber1
在你的例子中,就我看来,为了能够像你描述的那样中止,你还必须知道未来(因为在 "中止 "条形图之前,规则是适用的,并且会返回一个走势信号)。
另一方面,如果你试图测试所有的条形图,以获得进入的条件,最终你将总是有一个 "规则的破坏",将无法进入该位置。
在这个截图中,你需要在第4条终止交易,因为第3条超过了MA+5的限制,这意味着在第4条你需要检查第3条是否超过了MA+5的限制,它确实超过了,这就是这个交易设置的结束。
这里所有的5个柱子都符合条件,因为它们都没有超过MA+5的限制。
关闭所有公开交易的EA
谁能帮我做这个EA?
这个EA将在达到目标利润和损失时关闭所有未结的交易对。
当它关闭所有的交易时,然后开始监控已开的交易。
我有一个限制人才来做这个。
这个EA与每个交易对的主EA分开。
信号和阻力/支撑dinamyc线。
你能帮我把这个指标翻译成MT4语言吗?
a:=(hhv(close,tpr)+llv(close,tpr)+close)/3;
b:=(a1*2)-hhv(close,tpr)。
移动b:=mov(b,tpr,simple)。
c:=(a1*2)-llv(close,tpr);
移动c:=mov(c,tpr,simple);
d:=(hhv(close,tpr/2)+llv(close,tpr/2)+close)/3;
移动d:=mov(d,tpr/2,simple)。
stream:=(b+c+d)/3;
移动流:=mov(stream,tpr,simple)。
hhv=最大周期值(所选时间段内收盘价 的最高值)。
llv=最小周期值(所选时间段内收盘价的最低值)。
tpr=时间段(从1到任何你想要的)。
mov=移动平均线。
输出必须有 "流 "和 "移动流"!即使它还有 "b"、"移动b"、"c"、"移动c"、"d "和 "移动d",也不是什么坏事!
谢谢。
这个论坛是伟大的......
Lucmat