[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 453

 

Guten Tag!

Wenn ein schwebender Auftrag durch ein Skript ausgelöst wird, wie kann ich dieses Skript aus dem Werkzeugfenster entfernen?

Ich danke Ihnen im Voraus.

 
baltik >>:

НЕТ

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

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

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

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

Kein Skript kann das Terminal öffnen!

Wenn Sie also wollen, dass es funktioniert, muss es auf einem offenen und mit dem Netz verbundenen Terminal liegen. Es wird zur gewünschten Zeit laufen und die Daten aufzeichnen. Die Terminals müssen aber immer eingeschaltet sein.

 
Aleks25 >>:

Добрый день!

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

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

das Skript wird einmal auf dem Diagramm ausgeführt und erfordert keine manuelle Unterbrechung der Verbindung.

 
sergeev >>:

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

Wenn die Verbindung zum Fenster nicht unterbrochen wird, wird leider der nächste Auftrag geöffnet, wenn der vorherige Auftrag geschlossen wird.

 
Ist es ein Skript oder ein Experte?
 
Per Code ein Skript, das sich aber im Verzeichnis der Experten befindet.
 

Hier ist der Code

Verschiebt den schwebenden Auftrag bei Preisänderung


//--------------------------------------------------------------------
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, // Schwellenpreis, nach dessen Überschreiten
// ein Verkauf in Betracht gezogen wird (abs)
lmin, // Gleiches für Buy
Lot;

int Count=0;
int total=0;
int Ticket=0; // Globale Variable.
//--------------------------------------------------------------------
int init() // Special init()

{
int total=OrdersTotal(); // nur offene Aufträge
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); // Bid-Wert anfordern
double ask =MarketInfo(Symbol(),MODE_ASK); // Ask-Wert anfordern
double min =MarketInfo(Symbol(),MODE_ASK); // Ask-Wert anfordern
double point =MarketInfo(Symbol(),MODE_POINT)//Query 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); // Fehlermeldung
// Alert (Symbol()," ",OP_BUYSTOP," ",0.01," ",ask+10*Point," ",3," ",ask-35*Point," ",ask+35*Point);
Alert (GetLastError());
}


return; // Exit init()
}

//--------------------------------------------------------------------
int start() // Special. function start()
{
if(min>Bid) min=Bid;
{ // Zählung des Mindestpreises




int total=OrdersTotal(); // nur offene Aufträge
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; // Beenden init()
}

//--------------------------------------------------------------------
int deinit() // Spezial. f-iia deinit()
{
// Warnung ("Deinit() f-iia beim Entladen ausgelöst"); // Meldung
return; // Beenden von deinit()
}
//--------------------------------------------------------------------

 

string iii[];

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

MessageBox(iii[0]);
MessageBox(iii[1]);
MessageBox(iii[2]);
gibt die Zahl 3 dreimal aus! statt der richtigen 1, 2, 3.... WTF?

Danke!

 
Ich vermute, das Problem liegt darin, dass ich die Anzahl der Elemente im Array nicht angegeben habe. Was aber, wenn die Anzahl der Elemente anfangs unbekannt ist und das Array in der Schleife gefüllt wird? (in meinem Fall beim Lesen aus einer Datei)
 
mrddt >>:
догадываюсьчто проблема в том что я не указал кол-во элементов в массиве. а что делать если кол-во элементов изначально неизвесно и массив заполняется в цикле? (в моём случае при чтении из файла)

ArrayResize