[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 240
1Rakso писал(а)>> Ich habe die Seite nicht gefunden.
Ich konnte es auch nicht finden. Das spielt keine Rolle.
Wenn Sie mit Eröffnungspreisen arbeiten, reicht es aus, bei der Eröffnung einer neuen Bar nachzusehen.
int start(){if(! NevBar())return(0);//.......return(0);}bool NevBar(){staticint prevtime=0;if( prevtime==Time[0])return(false);
prevtime=Time[0];return(true);}
Das ist ungefähr richtig. Und wenn die Eröffnung zu anderen Preisen möglich ist. Wir sollten andere Mechanismen nutzen.
Wenn nur eine Position für ein Symbol und einen Zeitrahmen eröffnet werden kann, müssen wir die Anzahl der offenen Positionen kontrollieren.
int CountOrder[6];// Функция формирует массив с количеством открытых позиций по каждому виду ордеров.//===============================================================================int Order_Count_Calculate(string _Symbol,int _Magic,int _OP=-1){ArrayInitialize( Order_Count,0);for(int i =OrdersTotal()-1; i >=0; i--){if(!OrderSelect( i, SELECT_BY_POS, MODE_TRADES))continue;if(OrderSymbol()!= _Symbol)continue;if(OrderMagicNumber()!= _Magic)continue;
Order_Count[OrderType()]++;}if(_OP>=0)return( Order_Count[_OP]);return(0);}
Durch die Überprüfung der Werte der erforderlichen Array-Elemente wissen wir nun, wie viele Positionen dieses Typs geöffnet sind.
Ich habe dies in meinem Code, ich verstehe nicht, wie es zu erkennen, dass es eine Bestellung auf dieser Bar und es geschlossen, und wir haben zu warten, bis eine neue Bar?
Wie soll ich das erklären? Vielleicht habe ich mich falsch ausgedrückt oder die Funktion missverstanden....
1) Wenn wir einen Auftrag auf dem Null-Balken öffnen und er bereits geschlossen ist, dann öffnen wir keinen weiteren Auftrag auf diesem Balken, selbst wenn es ein Signal gibt, ihn zu öffnen, weil wir bereits einen Handel auf diesem Balken hatten und er bereits geschlossen ist; wir warten einfach auf den nächsten Balken.
Auf jedem Balken darf nur ein Geschäft eröffnet werden, wenn es auf diesem Balken ein Geschäft gab, eröffnen wir den Auftrag nicht, was ist zu tun?
Menschen helfen.....))) Ich habe bereits einen Nervenzusammenbruch \\\\\\\\>>>>
Ich habe dies in den Code, aber ich verstehe nicht, dieses Array, wie wird es erkennen, wenn es einen Auftrag auf dieser Bar und es geschlossen, und wir werden für eine neue Bar warten?
Wie soll ich das erklären? Vielleicht habe ich mich falsch ausgedrückt oder die Funktion missverstanden....
1) Wenn wir einen Auftrag auf dem Null-Balken öffnen und dieser bereits geschlossen ist, dann öffnen wir keinen weiteren Auftrag auf diesem Balken, selbst wenn es ein Signal gibt, ihn zu öffnen, weil wir bereits einen Handel auf diesem Balken hatten und dieser bereits geschlossen ist.
Auf jedem Balken darf nur ein Geschäft eröffnet werden, wenn es auf diesem Balken ein Geschäft gab, eröffnen wir den Auftrag nicht, was ist zu tun?
Menschen helfen.....))) Ich habe bereits einen Nervenzusammenbruch \\\\\\\\>>>>
Ich versuche gerade, einen Ratgeber zu schreiben... Ich fange gerade erst an zu lernen... Fehler 4062 erscheint im Tester...(ERR_STRING_PARAMETER_EXPECTED - 4062 - Parameter vom Typ string wird erwartet)
Ich kann nicht herausfinden, wo ich es reparieren kann. Kann jemand vor Ort einen Blick auf den Code werfen:)
externdouble Lots =0.9;//лотexterndouble StopLoss =70;externdouble DecreaseFactor =80;externdouble MaximumRisk =0.014;externdouble MaximumLots =100;//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+double GetSizeLot()//оптимизация лотов{double Lot = Lots;int cycle;int prof =0;int orders = HistoryTotal();// history orders totalint losses =0;// number of losses orders without a breakint vinn =0;int i = orders;//---- select lot size
Lot =NormalizeDouble(AccountFreeMargin()* MaximumRisk /100,1);//----if(AccountFreeMargin()<=14)
DecreaseFactor =14;//----if(AccountFreeMargin()>10000)
DecreaseFactor =60;//----if( DecreaseFactor >0&& orders > DecreaseFactor){//----for( cycle =1; cycle < DecreaseFactor; cycle++){
i--;//----if(OrderSelect( i, SELECT_BY_TICKET, MODE_HISTORY)==false){Print("Error in history!");break;}//----if(OrderCloseTime()>0){
prof = prof +OrderProfit();if(OrderProfit()<=0)
losses++;else
vinn++;}}if( prof <=0&& losses > vinn)
Lot =0.1;if( prof <=0&& vinn > losses)
Lot = Lot -(0.1* losses);if( prof >0&& losses > vinn){
Lot = Lot +(0.1*NormalizeDouble( vinn /4,0.1));}if( prof >0&& losses <= vinn ){
Lot = Lot +(0.1*NormalizeDouble( vinn /2,0.1));}}if(AccountFreeMargin()<300|| Lot <0.1)
Lot =0.1;if( Lot*1275>=AccountFreeMargin())
Lot =NormalizeDouble(AccountFreeMargin()* MaximumRisk /100,1);if( MaximumLots !=0&& Lot > MaximumLots)
Lot = MaximumLots;if( DecreaseFactor > orders)
Lot = Lots;return( Lot);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+ int start(){double glav1, sig1, glav2, sig2;int cnt, ticket, total;
glav1 =iCustom(NULL,0,"i_Trend",0,1);
sig1 =iCustom(NULL,0,"i_Trend",1,1);
glav2 =iCustom(NULL,0,"i_Trend",0,2);
sig2 =iCustom(NULL,0,"i_Trend",1,2);
total =OrdersTotal();// проверяем есть ли открытые позицииif( total <1){if(AccountFreeMargin()<(500* Lots))// проверяем денежки на счету{Print("Денег почти нет, осталось всего: ",AccountFreeMargin());return(0);}}// проверяем открытие позиции на покупкуif(( glav2< sig2)&&( glav1> sig1)){OrderSend(Symbol(),OP_BUY, GetSizeLot(),Ask,3,Ask- StopLoss*Point,"AlanMod expert",16384,0,Green);return(0);}// проверяем возможность открытия на продажуif(( glav2> sig2)&&( glav1< sig1)){OrderSend(Symbol(),OP_SELL, GetSizeLot(),Bid,3,Bid+ StopLoss*Point,"AlanMod expert",16384,0,Red);return(0);}for( cnt =0; cnt < total; cnt++){OrderSelect( cnt, SELECT_BY_POS, MODE_TRADES);if(OrderType()<=OP_SELL&&// проверка открытой позиции OrderSymbol()==Symbol())// проверка с нашего ли она графика{if(OrderType()==OP_BUY)// если открыта позиция на покупку{if( glav1< sig1)// проверяем закрывать или нет?{OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);// закрылиreturn(0);// сваливаем}}else// если эта позиция на продажу{if( glav1> sig1)//проверяем закрывать иль нет?{OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);// закрылиreturn(0);// сваливаем}}}}}
Ich versuche gerade, einen Ratgeber zu schreiben... Ich fange gerade erst an zu lernen... Fehler 4062 erscheint im Tester...(ERR_STRING_PARAMETER_EXPECTED - 4062 - Parameter vom Typ string wird erwartet)
Ich kann nicht herausfinden, wo ich es reparieren kann. Kann jemand von euch vor Ort den Code durchsehen:)
1) double NormalizeDouble( double value, int digits), und Sie haben (vinn/2, 0.1)
Ich habe die Seite nicht gefunden.
Ich konnte es auch nicht finden. Das spielt keine Rolle.
Wenn Sie mit Eröffnungspreisen arbeiten, reicht es aus, bei der Eröffnung einer neuen Bar nachzusehen.
Das ist ungefähr richtig. Und wenn die Eröffnung zu anderen Preisen möglich ist. Wir sollten andere Mechanismen nutzen.
Wenn nur eine Position für ein Symbol und einen Zeitrahmen eröffnet werden kann, müssen wir die Anzahl der offenen Positionen kontrollieren.
Durch die Überprüfung der Werte der erforderlichen Array-Elemente wissen wir nun, wie viele Positionen dieses Typs geöffnet sind.
Zum Beispiel (Beispiel für das Setzen eines Kaufstopps) :
(Es ist keineswegs erforderlich, dass der eingestellte Preis im Kursstrom enthalten ist, um einen schwebenden Auftrag einzustellen.
Sie können mit dem aktuellen Kurs oder mit einem beliebigen Kurs gehen, solange Sie das Stopp-Niveau vom AKTUELLEN KURS ZUM STOPP-KURS einhalten)
( 'EURUSD - Trends, Prognosen und Konsequenzen' )
Anstelle von
double priceBUY=..... ....
Ihre Formel eingeben
EH...vielen Dank vor allem für den beigefügten Code! Genau das, was der Arzt verordnet hat! ))))
Ich konnte es auch nicht finden. Das spielt keine Rolle.
Wenn Sie mit Eröffnungspreisen arbeiten, reicht es aus, bei der Eröffnung einer neuen Bar nachzusehen.
Das ist ungefähr richtig. Und wenn die Eröffnung zu anderen Preisen möglich ist. Wir sollten andere Mechanismen nutzen.
Wenn nur eine Position für ein Symbol und einen Zeitrahmen eröffnet werden kann, müssen wir die Anzahl der offenen Positionen kontrollieren.
Durch die Überprüfung der Werte der erforderlichen Array-Elemente wissen wir nun, wie viele Positionen dieses Typs geöffnet sind.
Ich habe dies in meinem Code, ich verstehe nicht, wie es zu erkennen, dass es eine Bestellung auf dieser Bar und es geschlossen, und wir haben zu warten, bis eine neue Bar?
Wie soll ich das erklären? Vielleicht habe ich mich falsch ausgedrückt oder die Funktion missverstanden....
1) Wenn wir einen Auftrag auf dem Null-Balken öffnen und er bereits geschlossen ist, dann öffnen wir keinen weiteren Auftrag auf diesem Balken, selbst wenn es ein Signal gibt, ihn zu öffnen, weil wir bereits einen Handel auf diesem Balken hatten und er bereits geschlossen ist; wir warten einfach auf den nächsten Balken.
Auf jedem Balken darf nur ein Geschäft eröffnet werden, wenn es auf diesem Balken ein Geschäft gab, eröffnen wir den Auftrag nicht, was ist zu tun?
Menschen helfen.....))) Ich habe bereits einen Nervenzusammenbruch \\\\\\\\>>>>
Ich habe dies in den Code, aber ich verstehe nicht, dieses Array, wie wird es erkennen, wenn es einen Auftrag auf dieser Bar und es geschlossen, und wir werden für eine neue Bar warten?
Wie soll ich das erklären? Vielleicht habe ich mich falsch ausgedrückt oder die Funktion missverstanden....
1) Wenn wir einen Auftrag auf dem Null-Balken öffnen und dieser bereits geschlossen ist, dann öffnen wir keinen weiteren Auftrag auf diesem Balken, selbst wenn es ein Signal gibt, ihn zu öffnen, weil wir bereits einen Handel auf diesem Balken hatten und dieser bereits geschlossen ist.
Auf jedem Balken darf nur ein Geschäft eröffnet werden, wenn es auf diesem Balken ein Geschäft gab, eröffnen wir den Auftrag nicht, was ist zu tun?
Menschen helfen.....))) Ich habe bereits einen Nervenzusammenbruch \\\\\\\\>>>>
Sehen Sie sich den Thread 'Nützliche Funktionen von KimIV' von Igor KIM an. Eine der Funktionen wird Ihre Frage beantworten
Ich versuche gerade, einen Ratgeber zu schreiben... Ich fange gerade erst an zu lernen... Fehler 4062 erscheint im Tester...(ERR_STRING_PARAMETER_EXPECTED - 4062 - Parameter vom Typ string wird erwartet)
Ich kann nicht herausfinden, wo ich es reparieren kann. Kann jemand vor Ort einen Blick auf den Code werfen:)
Ich versuche gerade, einen Ratgeber zu schreiben... Ich fange gerade erst an zu lernen... Fehler 4062 erscheint im Tester...(ERR_STRING_PARAMETER_EXPECTED - 4062 - Parameter vom Typ string wird erwartet)
Ich kann nicht herausfinden, wo ich es reparieren kann. Kann jemand von euch vor Ort den Code durchsehen:)
1) double NormalizeDouble( double value, int digits), und Sie haben (vinn/2, 0.1)
2) OrderSend(Symbol(), OP_BUY, GetSizeLot(), Ask, 3, Ask - StopLoss*Point,NO TAKE_profit, "AlanMod expert", 16384, 0, Green);
Wie benenne ich die Puffer in den benutzerdefinierten Indikatoren?