如何编码? - 页 195

 
kipper:
现在的情况是,程序做了所有的事情,但当数字低于15时,它保持蓝色,不知道我做错了什么,我希望有人能给我一些启示。

下面是我的代码,有4种颜色

试试这个。

if(sym_1 85) color_1 = Red; else color_1 = Blue;

if(sym_2 85) color_2 = Red; else color_2 = Blue;

if(sym_3 85) color_3 = Red; else color_3 = Blue;

if(sym_4 85) color_4 = Red; else color_4 = Blue;
 

"bar "是指从当前栏位开始的转变。

0 - 当前(开盘)酒吧

1 - 前一个("关闭")条。

grstaka:
谢谢你!!!! 这个bar是什么意思?是+1-1条吗?
 

谢谢你的帮助,罗杰,非常感谢

 

帮助创建一个超买/超卖指标

我想找一个有编码技能的人帮我创建一个超买/超卖指标,该指标将采取2个货币对的价格差异并显示结果。 应该是很直接的,但我不是程序员,所以我不太确定。 有谁有兴趣为我试试这个? 如果有,请告诉我,如果有人知道已经有了,那也很好。 我已经搜索过了,但没有看到任何东西可以做到这一点。

 

被追加保证金前的点数

有谁知道有什么方法可以计算出一个订单在 追缴保证金 之前可以走多少个点? 假设一次只开一个头寸。

我相信一定有办法的,但我一直想不出来。

 

警报信号调整为交易信号--如何做到这一点?

你好。

我有一个显示交易箭头的指标,蓝色代表买入,粉色代表卖出。我需要实际的买单和卖单 以及声音信号。因此,一个货币对在任何时候都只有一个交易,当相反的箭头出现时,当前的交易就会关闭,同时也会根据箭头出现的新交易。我在哪里以及如何修改代码。随函附上代码。谢谢你的帮助。

/*

+------------------------------------------------------------------+

| |

+------------------------------------------------------------------+

*/

#property copyright "Copyright)"

#property link "http://"

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 DodgerBlue

#property indicator_width1 3

#property indicator_color2 Magenta

#property indicator_width2 3

extern string note1 = "First Moving Average";

extern int MA1 = 10;

extern string note2 = "0=sma, 1=ema, 2=smma, 3=lwma";

extern int MA1Mode = 0; //0=sma, 1=ema, 2=smma, 3=lwma

extern string note3 = "--------------------------------------------";

extern string note4 = "Second Moving Average";

extern int MA2 = 50;

extern string note5 = "0=sma, 1=ema, 2=smma, 3=lwma";

extern int MA2Mode = 0; //0=sma, 1=ema, 2=smma, 3=lwma

extern string note6 = "--------------------------------------------";

extern string note7 = "Arrow Type";

extern string note8 = "0=Thick, 1=Thin, 2=Hollow, 3=Round";

extern string note9 = "4=Fractal, 5=Diagonal Thin";

extern string note10 = "6=Diagonal Thick, 7=Diagonal Hollow";

extern string note11 = "8=Thumb, 9=Finger";

extern int ArrowType=2;

extern string note12 = "--------------------------------------------";

extern string note13 = "turn on Alert = true; turn off = false";

extern bool AlertOn = true;

extern string note14 = "--------------------------------------------";

extern string note15 = "send Email Alert = true; turn off = false";

extern bool SendAnEmail=false;

double CrossUp[];

double CrossDown[];

string AlertPrefix, MA1short_name, MA2short_name;

string GetTimeFrameStr() {

switch(Period())

{

case 1 : string TimeFrameStr="M1"; break;

case 5 : TimeFrameStr="M5"; break;

case 15 : TimeFrameStr="M15"; break;

case 30 : TimeFrameStr="M30"; break;

case 60 : TimeFrameStr="H1"; break;

case 240 : TimeFrameStr="H4"; break;

case 1440 : TimeFrameStr="D1"; break;

case 10080 : TimeFrameStr="W1"; break;

case 43200 : TimeFrameStr="MN1"; break;

default : TimeFrameStr=Period();

}

return (TimeFrameStr);

}

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

if (ArrowType == 0) {

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0, 233);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1, 234);

}

else if (ArrowType == 1) {

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0, 225);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1, 226);

}

else if (ArrowType == 2) {

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0, 241);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1, 242);

}

else if (ArrowType == 3) {

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0, 221);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1, 222);

}

else if (ArrowType == 4) {

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0, 217);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1, 218);

}

else if (ArrowType == 5) {

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0, 228);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1, 230);

}

else if (ArrowType == 6) {

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0, 236);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1, 238);

}

else if (ArrowType == 7) {

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0, 246);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1, 248);

}

else if (ArrowType == 8) {

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0, 67);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1, 68);

}

else if (ArrowType == 9) {

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0, 71);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1, 72);

}

SetIndexBuffer(0, CrossUp);

SetIndexBuffer(1, CrossDown);

//---- indicator short name

switch(MA1Mode)

{

case 1 : MA1short_name="EMA"; break;

case 2 : MA1short_name="SMMA"; break;

case 3 : MA1short_name="LWMA"; break;

default :

MA1Mode=0;

MA1short_name="SMA";

}

switch(MA2Mode)

{

case 1 : MA2short_name="EMA"; break;

case 2 : MA2short_name="SMMA"; break;

case 3 : MA2short_name="LWMA"; break;

default :

MA2Mode=0;

MA2short_name="SMA";

}

AlertPrefix=Symbol()+" ("+GetTimeFrameStr()+"): ";

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

bool NewBar()

{

static datetime lastbar;

datetime curbar = Time[0];

if(lastbar!=curbar)

{

lastbar=curbar;

return (true);

}

else

{

return(false);

}

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start() {

int limit, i, counter;

double MA1now, MA2now, MA1previous, MA2previous, MA1after, MA2after;

double Range, AvgRange;

int counted_bars=IndicatorCounted();

//---- check for possible errors

if(counted_bars<0) return(-1);

//---- last counted bar will be recounted

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(i = 0; i <= limit; i++) {

counter=i;

Range=0;

AvgRange=0;

for (counter=i ;counter<=i+9;counter++)

{

AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);

}

Range=AvgRange/10;

MA1now = iMA(NULL, 0, MA1, 0, MA1Mode, PRICE_CLOSE, i);

MA1previous = iMA(NULL, 0, MA1, 0, MA1Mode, PRICE_CLOSE, i+1);

MA1after = iMA(NULL, 0, MA1, 0, MA1Mode, PRICE_CLOSE, i-1);

MA2now = iMA(NULL, 0, MA2, 0, MA2Mode, PRICE_CLOSE, i);

MA2previous = iMA(NULL, 0, MA2, 0, MA2Mode, PRICE_CLOSE, i+1);

MA2after = iMA(NULL, 0, MA2, 0, MA2Mode, PRICE_CLOSE, i-1);

if ((MA1now > MA2now) && (MA1previous MA2after)) {

CrossUp = Low - Range*1.5;

if ( NewBar())

{

if (AlertOn) {

Alert(AlertPrefix+MA1short_name+" ("+MA1+") "+"crosses UP " + MA2short_name+" ("+MA2+")");

}

if (SendAnEmail) {

SendMail(AlertPrefix,MA1short_name+" ("+MA1+") "+"crosses UP " + MA2short_name+" ("+MA2+")");

}

}

}

else if ((MA1now MA2previous) && (MA1after < MA2after)) {

CrossDown = High + Range*1.5;

if (NewBar())

{

if (AlertOn) {

Alert(AlertPrefix+MA1short_name+" ("+MA1+") "+"crosses DOWN " + MA2short_name+" ("+MA2+")");

}

if (SendAnEmail) {

SendMail(AlertPrefix,MA1short_name+" ("+MA1+") "+"crosses DOWN " + MA2short_name+" ("+MA2+")");

}

}

}

}

return(0);

}

 

看起来像一个简单的MA交叉指标。请查看 我的签名中的链接,它将使你能够建立一个MA交叉EA的免费教程。

好运

拉克斯

 

你好,Seniore,这个EA可以使机器人......模型也是Martiangle的。

1.循环 -> 设置机器人的轮回方式有多少次

2.First Order Auto -> 根据当时小市场的趋势下单买入或卖出,然后自动操作旁边的最后一笔买入或卖出。

3.起始手数 -> 设置手数

4.范围 -> 你下单的位置与其他位置之间的距离

5.范围增加-->你下单的仓位与其他仓位之间的距离按照倍数增长

6.起始级数增加->二进制顺序启用参数rangeincrease的功能

8.TPmoney -> 当达到当时的资金利润时关闭所有订单。

谢谢

 

帮助EA

mirak:
你好,该EA可以制作机器人......模型也是Martiangle的。

1.循环 -- 设置机器人循环多少次的方式

2.首单自动 -> 根据当时小盘的走势下单买入或卖出,然后自动操作旁边的最后一笔买入或卖出。

3.起始手数 -> 设置手数

4.范围 -> 你下单的位置与其他位置之间的距离

5.范围增加-->你下单的仓位与其他仓位之间的距离按照倍数增长

6.起始级数增加->二进制顺序启用参数rangeincrease的功能

8.TPmoney -> 当达到当时的资金利润时关闭所有订单。

谢谢

请帮助我们

 

iTime

以下是在MTF上获取Bar 的开始时间的代码

GetTime =(iTime(Symbol(),60,i)); it OK

我们如何获得Bar的结束时间?

谢谢

原因: