[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 924

 
最主要的是确定思想的方向...:)

纠正它,只是为了不让这个人迷路......:)

你能纠正我吗,简单地说?
 
T.H.C.:
能否请你纠正我,只是?

我举了一个例子。

如果5比2大,说明5比2大。

而比较这些数值的差异,如果5-2大于0,则5大于2。

清楚了吗?重点仍然是--这都是同样的一年级数学,只是由它衍生出来的......

 
extern double Lot=0.01; // Жестко заданное колич. лотов
datetime time;
//--------------------------------------------------------------- 2 --
int start()
{
int Total;


bool
Ans =false, // Ответ сервера после закрытия
Cls_B=false, // Критерий для закрытия Buy
Cls_S=false, // Критерий для закрытия Sell
Opn_B=false, // Критерий для открытия Buy
Opn_S=false; // Критерий для открытия Sell

//--------------------------------------------------------------- 3 --
// Учёт ордеров


for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()>1)Total++;

if(Total!=0 || time==Time[1])return;

static int KolBars;



if (Close[0]-Open[0] > Point && Close[1]-Open[1] > Point && Bars == KolBars)


{

KolBars=Bars ; // запоминаем кол-во бар при которых совершались действия

}




// Торговые критерии

// Критерий откр. Buy


Opn_B=true;

//--------------------------------------------------------------- 7 --


if (Opn_B)
{OrderSend(Symbol(),OP_BUY,Lot,Ask,0,0,0);time=Time[1];}

}




请帮助,有人,我已经是第四次问了。我花了3天时间寻找答案,书上没有说怎么做,我找不到任何有这种情况的EA。初级顾问在新的蜡烛出现时建立买入头寸(前提是前2根蜡烛是绿色的),并在开仓的蜡烛收盘时或下一根蜡烛收盘时平仓。

你在上面看到的那个,每次出现新的蜡烛就开仓,对开仓标准没有反应,我不知道如何平仓,我在教程和论坛上都找不到。

 
artmedia70:

梳理一下...:)

不要忘记StopLev的存在 - int StLev=MarketInfo(Symbol(), MODE_STOPLEVEL)。

检查设置停止和收货的最小距离,使其不低于这个值


总之,它似乎是正确的,但是-- "StLev=MarketInfo(Symbol(),MODE_STOPLEVEL);" 我不知道该把它放在哪里, ,现在...

问题是,我一直在工作(我不能在这里安装mql4程序,所以我必须在我的脑海里做这一切

Extern double StopLoss=100.0;
extern double TakeProfit=100.0;
extern double Lots=0.01;
extern int total;
extern int SetOrderDistance=50。

int start() {

int pt,dg,StLev;
double Price_1,Price_2,min,max,pa,pb;
RefreshRates();

pt=MarketInfo(Symbol(),MODE_POINT);
dg=MarketInfo(Symbol(),MODE_DIGITS);
pa=MarketInfo(Symbol(),MODE_ASK);
pb=MarketInfo(Symbol(),MODE_BID);
Price_1=pb;
Price_2=pa;
min=iLow(NULL, 0, 2);
max=iHigh(NULL, 0, 2) 。
total=OrdersTotal();
double slB=NormalizeDouble(pa-StopLoss*pt,dg);
double tpB=NormalizeDouble(pa+TakeProfit*pt,dg);
double slS=NormalizeDouble(pb+StopLoss*pt,dg);
double tpS=NormalizeDouble(pb-TakeProfit*pt,dg)

if(total<1) {

如果(Price_1>max)
OrderSend(Symbol(),OP_BUY,Lots,pa,5,slB,tpB, "My order#,16384,0,Green);

如果(Price_2<min)
OrderSend(Symbol(,OP_SELL,Lots,pb,5,slS,tpS, "My order#,16384,0,Green);
}
}return(0);

 
T.H.C.:

我只是画了个草图,可能会很乱。

#define Mag 464564564
extern double Lot=0.01;

int start()
{
int Total;

for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2&&OrderMagicNumber()==Mag)
       {Total++;
       if(Volume[0]<4)close();
       }

if(Total!=0)return;
if(Close[1]>Open[1]&&Close[2]>Open[2]&&Volume[0]>4)bue();
if(Close[1]<Open[1]&&Close[2]<Open[2]&&Volume[0]>4)sell();

}
void bue()
{
OrderSend(Symbol(),0,Lot,NormalizeDouble(Ask,Digits),5,0,0,0,Mag);
}
//----
void sell()
{
OrderSend(Symbol(),1,Lot,NormalizeDouble(Bid,Digits),5,0,0,0,Mag);
}
void close()
{
double pr;if(OrderType()==0)pr=Bid;if(OrderType()==1)pr=Ask;
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(pr,Digits),5);
}
 
Techno:

我只是画了个草图,可能有点乱。

非常感谢你,非常有帮助。

你是如何学习编程的?你从哪里开始?

 
T.H.C.:

非常感谢你,非常有帮助。

你是如何学习编程的?你从哪里开始?

我从教科书上学习,从C++开始
 
C++和mql有什么不同吗?
 
T.H.C.:
C++和mql有什么不同吗?
除了一些功能(交易方向),Mql只是C++的一个高度精简的副本。
 
Techno:
除了一些功能(交易方向),Mql只是C++的一个高度精简的拷贝。
哦,谢谢你给我的建议和时间。
原因: