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

 
rensbit:
锚的角度是指从哪个角度计算窗口中物体的位置。角度从左到右顺时针计算。

如果我抓取到右下角,那么呢,我应该设置负坐标吗?
 
valenok2003:

如果我抓取到右下角,我是否要设置负坐标?
不,正坐标,终端会自己计算出所需的点。比如说。从第2个角开始的15个像素
 
Azerus:

请告知。

为了计算连续事件的数量(例如,在一个系列中收盘价高于开盘价的条数,反之亦然),我只能得出以下结论。

有两个问题(如果上述有意义的话):(1)如果连续系列停止了,如何重置计数器的读数;(2)如何正确写入Buffer[i]--即我如何能 "看到 "结果本身?

也就是说,如果某个条形图的指标显示为"-3",这意味着这是连续第三个条形图的收盘价低于开盘价;如果它之后的下一个条形图收盘价高于开盘价,指标将显示为 "1" ......。

int i=Bars-1

while (i > 0) {

int x=0。

int y=0。

if ( Close[i] > Open[i] ) { x++ ;

Buf [i]= x; }

如果(Close[i] < Open[i] ){ y-- ;

Buf2[i] =y ; }

i--;

}

 
rensbit:
不,正坐标,终端会自己计算出所需的点。比如说。距2个角15像素
谢谢你,它正在工作。
 
artmedia70:
显示你的代码,以便不被猜中


在Gorando程序中制作,加入了你的马汀。

//+------------------------------------------------------------------+
//| Copyright 2005, Gordago Software Corp.
//| http://www.gordago.com/ |
//| 2.0版本|
//+------------------------------------------------------------------+

#property copyright"Copyright 2005, Gordago Software Corp."
#属性链接 "http://www.gordago.com"

#define MIN_STOPLOSS_POINT 10
#define MIN_TAKEPROFIT_POINT 10
#define MAGIC 218650

外部字符串sNameExpert = "从Gordago生成"。
外部int nAccount =0;
外部双倍的dBuyStopLossPoint = 0;
外来的双倍dSellStopLossPoint = 0;
外来的双数dBuyTakeProfitPoint = 0;
外来的双倍dSellTakeProfitPoint = 0;
外来的双倍数dBuyTrailingStopPoint = 0;
外来的双倍dSellTrailingStopPoint = 0;
外来的双Lot = 0.10。
外置 int nSlippage = 30;
外部 bool lFlagUseHourTrade = True;
外部inttern nFromHourTrade = 0;
外置 intToHourTrade = 23;
外部 bool lFlagUseSound = False;
外部字符串sSoundFileName = "alert.wav"。
外部颜色 colorOpenBuy = Blue;
外部的colorCloseBuy = Aqua;
外部颜色OpenSell = 红色。
extern colorCloseSell = Aqua;


void deinit() {
评论(")。
}

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start(){
如果(lFlagUseHourTrade){
如果(!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade)){
评论("贸易的时间还没有到来!")。
return(0);
}
}

如果(Bars < 100){
Print("小于100的条形图")。
return(0);
}

如果(nAccount > 0 && nAccount != AccountNumber()){
评论("账户交易:"+账户号码()+"禁止!")。
return(0);
}

如果((dBuyStopLossPoint > 0 && dBuyStopLossPoint < MIN_STOPLOSS_POINT) ||
(dSellStopLossPoint > 0 && dSellStopLossPoint < MIN_STOPLOSS_POINT)){
Print("StopLoss 小于" + MIN_STOPLOSS_POINT)。
return(0);
}
如果((dBuyTakeProfitPoint > 0 && dBuyTakeProfitPoint < MIN_TAKEPROFIT_POINT) ||
(dSellTakeProfitPoint > 0 && dSellTakeProfitPoint < MIN_TAKEPROFIT_POINT)){
Print("TakeProfit小于" + MIN_TAKEPROFIT_POINT)。
return(0);
}

double diOpen0=iOpen(NULL,60,0);
double d1=(0.00030);
double diHigh2=iHigh(NULL,60,0)。
double diOpen3=iOpen(NULL,60,0);
double d4=(0.00030);
double diLow5=iLow(NULL,60,0)。
double diOpen6=iOpen(NULL,60,1);
double diClose7=iClose(NULL,60,1);
double diOpen8=iOpen(NULL,60,2);
double diClose9=iClose(NULL,60,2);
double diOpen10=iOpen(NULL,60,0);
double d11=(0.00030);
double diHigh12=iHigh(NULL,60,0)。
double diOpen13=iOpen(NULL,60,0);
double d14=(0.00030);
double diLow15=iLow(NULL,60,0)。
double diOpen16=iOpen(NULL,60,1);
double diClose17=iClose(NULL,60,1);
double diOpen18=iOpen(NULL,60,2);
double diClose19=iClose(NULL,60,2);


如果(AccountFreeMargin() < (1000*Lot)){
Print("我们没有钱。Free Margin = " + AccountFreeMargin())。
return(0);
}

bool lFlagBuyOpen = false, lFlagSellOpen = false, lFlagBuyClose = false, lFlagSellClose = false;

lFlagBuyOpen = (diOpen0+d1>diHigh2 && diOpen3-d4<diLow5 && diOpen6<diClose7 && diOpen8>diClose9) 。
lFlagSellOpen = (diOpen10+d11>diHigh12 && diOpen13-d14<diLow15 && diOpen16>diClose17 && diOpen18<diClose19) 。
lFlagBuyClose = False。
lFlagSellClose = False;

如果(!ExistPositions()){

如果(lFlagBuyOpen){
OpenBuy()。
{ return(0);
}

如果(lFlagSellOpen){
OpenSell()。
return(0);
}
}
如果(ExistPositions()){
如果(OrderType()==OP_BUY){
如果(lFlagBuyClose){
bool flagCloseBuy = OrderClose(OrderTicket(, OrderLots(), Bid, nSlippage, colorCloseBuy)。
如果(flagCloseBuy && lFlagUseSound)
PlaySound(sSoundFileName)。
return(0);
}
}
如果(OrderType()==OP_SELL){
如果(lFlagSellClose){
bool flagCloseSell = OrderClose(OrderTicket(, OrderLots(), Ask, nSlippage, colorCloseSell)。
如果(flagCloseSell && lFlagUseSound)
PlaySound(sSoundFileName)。
return(0);
}
}
}

如果(dBuyTrailingStopPoint > 0 || dSellTrailingStopPoint > 0){

for (int i=0; i<OrdersTotal(); i++){
如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
bool lMagic = true。
如果(MAGIC > 0 && OrderMagicNumber() != MAGIC)
lMagic = false。

如果(OrderSymbol()==Symbol() && lMagic) {
如果(OrderType()==OP_BUY && dBuyTrailingStopPoint > 0) {
如果(Bid-OrderOpenPrice() > dBuyTrailingStopPoint*Point) {
如果(OrderStopLoss()<Bid-dBuyTrailingStopPoint*Point)
修改StopLoss(Bid-dBuyTrailingStopPoint*Point)。
}
}
如果(OrderType()==OP_SELL) {
如果(OrderOpenPrice()-Ask>dSellTrailingStopPoint*Point) {
如果(OrderStopLoss()>Ask+dSellTrailingStopPoint*Point || OrderStopLoss()==0)
ModifyStopLoss(Ask+dSellTrailingStopPoint*Point)。
}
}
}
}
}
}
返回(0)。
}

bool ExistPositions() {
for (int i=0; i<OrdersTotal(); i++){
如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
bool lMagic = true。

如果(MAGIC > 0 && OrderMagicNumber() != MAGIC)
lMagic = false。

如果(OrderSymbol()==Symbol() && lMagic) {
return(True)。
}
}
}
return(false)。
}

无效的修改止损(double ldStopLoss) {
bool lFlagModify = OrderModify(OrderTicket(, OrderOpenPrice(), ldStopLoss, OrderTakeProfit(), 0, CLR_NONE)。
如果(lFlagModify && lFlagUseSound)
PlaySound(sSoundFileName)。
}

//+----------------------------------------------------------------------------+
//| Author : Kim Igor V. aka KimIV, http://www.kimiv.ru |。
//+----------------------------------------------------------------------------+
//| 版本号 : 19.02.2008||
//| 说明:返回最后位置的损失标志。
//+----------------------------------------------------------------------------+
//| 参数: |
//| sy - 仪器的名称(" - 任何符号,|)
//| NULL - 当前符号) |
|//| op - 操作 (-1 - 任何位置) |
//| mn - 魔法数字(-1 - 任何魔法)|
//+----------------------------------------------------------------------------+
bool isLossLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
int i, j=-1, k=OrdersHistoryTotal();

如果(sy=="0")sy=符号()。
for (i=0; i<k; i++) {
如果(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
如果(OrderSymbol()==sy || sy=="){
如果(OrderType()==OP_BUY || OrderType()==OP_SELL) {
如果(op<0 || OrderType()==op){
如果(mn<0 || OrderMagicNumber()==mn) {
如果(t<OrderCloseTime()){
t=OrderCloseTime()。
j=i。
}
}
}
}
}
}
}
如果(OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)){
如果(OrderProfit()<0)返回(True)。
}
return(False)。
}





空白的OpenBuy(){
双重dStopLoss = 0, dTakeProfit = 0。
double Lots_New = Lot;

如果(isLossLastPos(NULL, -1, MAGIC))
Lots_New *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lots_New = Lot;


如果(dBuyStopLossPoint > 0)
dStopLoss = Bid-dBuyStopLossPoint*Point。

如果(dBuyTakeProfitPoint > 0)
dTakeProfit = Bid + dBuyTakeProfitPoint * Point;

int numorder = OrderSend(Symbol(, OP_BUY, Lots_New, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy);

如果(numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName)。
}

空白的OpenSell() {
双重dStopLoss = 0, dTakeProfit = 0。
double Lots_New = Lot;

如果(isLossLastPos(NULL, -1, MAGIC))
Lots_New *= 2;
else if (!isLossLastPos(NULL, -1, MAGIC))
Lots_New = Lot;

如果(dSellStopLossPoint > 0)
dStopLoss = Ask+dSellStopLossPoint*Point。

如果(dSellTakeProfitPoint > 0)
dTakeProfit = Ask-dSellTakeProfitPoint*Point。

int numorder = OrderSend(Symbol(,OP_SELL, Lots_New, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);

如果(numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName)。
}

 
valenok2003:

如果你不介意在例子中修正它,由于某些原因,它对我不起作用。
      ObjectSetText("info", str3, fontsize, fontname);
      ObjectSet("info", OBJPROP_CORNER, corner);
      ObjectSet("info", OBJPROP_XDISTANCE, xdistance);
      ObjectSet("info", OBJPROP_YDISTANCE, ydistance);
      ObjectSet("info", OBJPROP_COLOR, clr);

我把可变角做成了外部的(为了方便)。它包含了将被计算为坐标的角的号码

 
Roger:


尝试用以下方式代替

如果(OrderStopLoss()<pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0)

如果(OrderStopLoss()>pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0)

罗杰,谢谢,但还是不能正常工作。尝试了另一次拖网,但错误仍然存在 :( 拖网一个姿势和同时拖网几个姿势有什么区别吗?
 
rensbit:

我把角的变量做成了外部的(为了方便)。它包含了将被计算出坐标的角的号码

谢谢你!

还有一个问题。如何正确地将Wingdings的符号插入评论中。

 
哪个符号?
 
rensbit:
哪个符号?

版权
原因: