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

 

下午好!

如果一个挂单是由一个脚本触发的,我如何将这个脚本从工具窗口断开?

预先感谢你。

 
baltik >>:

НЕТ

Скрипт при исполнении делает файл с историей в папку ексерт\филес\ имя файла (это номер счета)

Все очень просто скрипт на 3 терминалах исполняется скажем в 6 утра автоматом

Значит нам не надо открывать терминалы - отрываем базу и новые данные уже в ней подхвачены готовые к анализу (это уже реализовано)

% деятельности с посчитанными свопами, сводными таблицами и графиками и т.д.

没有脚本可以打开终端!

因此,如果你想让它工作,它必须在一个开放并连接到网络的终端上。它将在规定的时间运行并记录数据。但终端必须始终处于接通状态。

 
Aleks25 >>:

Добрый день!

Как сделать, если сработал отложенный скриптом ордер, чтобы этот скрипт отсоединить от окна инструмента?

Заранее благодарен.

脚本在图形上执行一次,不需要手动断开连接。

 
sergeev >>:

скрипт выполняется на графике один раз и не требует ручного отсоединения.

不幸的是,如果它没有与窗口断开,当前一个订单关闭时,它会打开下一个订单。

 
是脚本还是专家?
 
通过代码一个脚本,但是是在专家的目录中。
 

以下是其代码

在价格变化时转移挂单


//--------------------------------------------------------------------
extern double OTSTUP_BUY = 7;
extern double TakeProfit = 100;
//extern double BuyStop = 0;
//extern double StopLoss = 0;
extern double Lots = 0.01;
//extern double TrailingStop = 21;

double min =100000;
double
lmax, //阈值价格,在它被通过后
//我们考虑卖出(abs)
lmin, //同买入
Lot;

int Count=0;
int total=0;
int Ticket=0; //全局变量。

//--------------------------------------------------------------------
int init() // Special init()

{
int total=OrdersTotal(); // only open orders
string Symbol1=Symbol();
double metka=0;
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES) ==false) continue;
if(OrderSymbol() ==Symbol() )
{
metka=1;
Alert("Order #", OrderTicket(), " in ", OrderSymbol());

}

else
{
}
}

}

if(metka==0 )
// if(metka==0 && UROVEN>=Ask)

{

double bid =MarketInfo(Symbol(),MODE_BID); // Request Bid value
double ask =MarketInfo(Symbol(),MODE_ASK); // Request Ask value
double point =MarketInfo(Symbol(), MODE_POINT)//查询点
OrderSend(Symbol(,OP_BUYSTOP,Lots,bid+OTSTUP_BUY*Point,3,bid-1*Point,bid+TakeProfit*Point);
int Ticket=OrderTicket();
//OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyStop,3,StopLoss,TakeProfit, "Bye Stop 1");
Alert (Ticket); //Error message
// Alert (Symbol()," ", OP_BUYSTOP," ",0.01," ",ask+10*Point," ",3," ",ask-35*Point," ",ask+35*Point);
Alert (GetLastError());
}


return; // Exit init()
}

//
int start() // Special.函数 start()
{
if(min>Bid) min=Bid;
{ // 计算最小价格




int total=OrdersTotal(); // 仅限未结订单
string Symbol1=Symbol();
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)==false) continue;
{
if(OrderSymbol() ==Symbol() )
{
Alert("Order #", OrderTicket(), " in ", OrderSymbol());
Alert (min);
OrderModify(OrderTicket(),min+OTSTUP_BUY*Point,min-1*Point,min+TakeProfit*Point,0);//Modify
Alert(GetLastError());
Alert(Symbol(), " " , OrderTicket() )
, OrderTicket()," ",min+OTSTUP_BUY*Point," ",min-1*Point," ",min+TakeProfit*Point," ",0);
}
}



}
return; // Exit init()
}

//
int deinit() // Special.f-iia deinit()
{
// Alert ("Deinit() f-iia on unloading" triggered); // Message
return; // Exit deinit()
}
//--------------------------------------------------------------------

 

字符串 iii[]。

iii[0] = "1"。
iii[1]="2"。
iii[2]="3"。

MessageBox(iii[0])。
MessageBox(iii[1])。
MessageBox(iii[2])。
输出数字3三次!而不是正确的1,2,3....WTF?

谢谢!

 
我猜问题在于我没有指定数组中的元素数量。 但如果元素数量最初是未知的,而数组在循环中被填满,怎么办?(在我的例子中,当从一个文件中读取时)
 
mrddt >>:
догадываюсьчто проблема в том что я не указал кол-во элементов в массиве. а что делать если кол-во элементов изначально неизвесно и массив заполняется в цикле? (в моём случае при чтении из файла)

ArrayResize

原因: