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

 

Dmido писал(а) >>

Guten Tag)


Ich wende mich mit einer Frage an Sie, die ich lange Zeit aufgrund meines mangelnden Verständnisses von schwebenden Aufträgen in EAs vermieden habe, aber schließlich bin ich stecken geblieben. Ich verstehe nicht, wie man einen Preis in einem schwebenden Auftrag festlegt. Was sollte ich anstelle von BID und ASK hinzufügen? Kann ich jede zuvor berechnete Variable verwenden? Wie kann ich diesen Preis dann so einstellen, dass er später bei einer Bestellung gilt? Ich erhalte viele Fehlermeldungen, die besagen, dass es einen solchen Preis nicht gibt und so weiter.....


Wenn es Ihnen nichts ausmacht, können Sie Ihre Antwort in Codeform erklären... Ich habe so viel gesucht, aber es steht so daneben...(((

In der Qualität der Werte Ask und Bid on idea sollten die aktuellen Werte von Ask und Bid, oder früher berechnete Variablen wirken.

Hier gibt es eine Besonderheit: Sie können diese Werte nur bei Kauf- und Verkaufsaufträgen als echte Werte annehmen.


Am besten ist es, die Eröffnung aller Aufträge in Form von mindestens 6 Verfahren vorzunehmen, d.h: OrderSendBuy, OrderSendSell, OrderSendLimitBuy, OrderSendLimitSell, OrderSendStopBuy und OrderSendStopSell.


PS

Es ist zu beachten, dass Limit-Orders zum besten Kurs eröffnet werden (mit einem Einzug vom aktuellen Kurs um eine bestimmte Anzahl von Punkten), und Stop-Orders in der entgegengesetzten Richtung über oder unter dem aktuellen Kurs platziert werden.


Beispiel für einen Öffnungscode aus dem Markt:

//Procedure OrderSendBuy
void OrderSendBuy(string WorkSymbol, double LotsSize=0, int Slippage=3,int SizeSL=0, int SizeTP=100,
string Text=NULL, int MN=0, datetime Expiration=0, color OrdrtColor=CLR_NONE)
{
//----------------------------------------------------------------------------//
// Служебные переменные
double RealAsk, RealBid; //Текущие Ask и Bid инструмента
double SymbolPoint; //Размер пункта текущего инструмента
double SL, TP; // StopLoss и TakeProfit будущей позиции

int TicketNew; //Тикер новой позиции (в случае удачи, иначе -1)
//----------------------------------------------------------------------------//
//Зашита от дурака
  if( LotsSize<MarketInfo( WorkSymbol,MODE_MINLOT)){ LotsSize = MarketInfo( WorkSymbol,MODE_MINLOT);}

//Расчет параметров для новой позиции
SymbolPoint = MarketInfo( WorkSymbol,MODE_POINT); //Определяем размер пункта
RealAsk = MarketInfo( WorkSymbol,MODE_ASK); //Определяем Ask
RealBid = MarketInfo( WorkSymbol,MODE_BID); //Определяем Bid

if( SizeTP>0){ TP = RealAsk+ SizeTP* SymbolPoint;}else{ TP = RealAsk+100* SymbolPoint;}
if( SizeSL>0){ SL = RealBid- SizeSL* SymbolPoint;}else{ SL = 0;}
//Попытка открыть позицию с рынка
TicketNew = OrderSend( WorkSymbol,OP_BUY, LotsSize, RealAsk, Slippage, SL, TP, Text, MN, Expiration, OrdrtColor);
//Проверка ошибок возникших при открытии новой позиции
if( TicketNew==-1)
//При открытии произошла ошибка
{
Print("Попытка открыть Market-Buy позицию по паре ", WorkSymbol," окончилась неудачно. Код ошибки #",GetLastError())
;}
else
//Позиция успешно установлена
{
Print("Успешно создана позиция Market-Buy по паре ", WorkSymbol," Тикер новой позиции #", TicketNow);
Alert("Open market-Buy, ticket ", TicketNew," Open price ", RealAsk," Profit ", TP," SL ", SL);
}
//----------------------------------------------------------------------------//
}


 

Beispielcode für das Setzen eines schwebenden Auftrags:

//Procedure OrderSendLimitBuy
void OrderSendLimitBuy(string WorkSymbol, double LotsSize=0, int Slippage=3,int LimitStep=50,int SizeSL=0, int SizeTP=100,
string Text=NULL, int MN=0, datetime Expiration=0, color OrdrtColor=CLR_NONE)
{
//----------------------------------------------------------------------------//
// Служебные переменные
double RealAsk, RealBid; //Текущие Ask и Bid инструмента
double OpenPrice; //Цена на которую будет установлен отложник

double SymbolPoint; //Размер пункта текущего инструмента
double SL, TP; // StopLoss и TakeProfit будущей позиции

int TicketNew; //Тикер новой позиции (в случае удачи, иначе -1)
//----------------------------------------------------------------------------//
//Зашита от дурака
  if( LotsSize<MarketInfo( WorkSymbol,MODE_MINLOT)){ LotsSize = MarketInfo( WorkSymbol,MODE_MINLOT);}

//Расчет параметров для новой позиции
SymbolPoint = MarketInfo( WorkSymbol,MODE_POINT); //Определяем размер пункта
RealAsk = MarketInfo( WorkSymbol,MODE_ASK); //Определяем Ask
RealBid = MarketInfo( WorkSymbol,MODE_BID); //Определяем Bid

OpenPrice = RealAsk- LimitStep* SymbolPoint; //Цена на которую будет установлен отложник

if( SizeTP>0){ TP = OpenPrice+ SizeTP* SymbolPoint;}else{ TP = OpenPrice+100* SymbolPoint;}
if( SizeSL>0){ SL = RealBid-( SizeSL+ LimitStep)* SymbolPoint;}else{ SL = 0;}
//Попытка открыть позицию с рынка
TicketNew = OrderSend( WorkSymbol,OP_BUYLIMIT, LotsSize, OpenPrice, Slippage, SL, TP, Text, MN, Expiration, OrdrtColor);
//Проверка ошибок возникших при открытии новой позиции
if( TicketNew==-1)
//При открытии произошла ошибка
{
Print("Попытка создать Limit-Buy по паре ", WorkSymbol," окончилась неудачно. Код ошибки #",GetLastError())
;}
else
//Позиция успешно установлена
{
Print("Успешно создан ордер Limit-Buy по паре ", WorkSymbol," Тикер ордера #", TicketNow);
Alert("Create Limit-Buy, ticket ", TicketNew," Open price ", OpenPrice," Profit ", TP," SL ", SL);
}
//----------------------------------------------------------------------------//
}
 

Hallo.

Ich teste gerade einen EA.

Zeitraum Tag (D1) 2008.09.01 00:00 - 2009.08.31 00:00 (2008.09.01 - 2009.09.01)
Modell Alle Ticks (die genaueste Methode auf der Grundlage aller kleinsten verfügbaren Zeitrahmen)
Bars in der Geschichte 1259 Modellierte Zecken 8769661 Qualität der Modellierung k.A.
Diagrammabweichungsfehler 225

Ich erhalte Unstimmigkeitsfehler. Gibt es eine Möglichkeit, sie zu vermeiden? Ich weiß nicht, ob es sich um eine große oder kleine Anzahl von Fehlern handelt. Die Waage ist überwiegend grün und dunkelgrün, aber nur zu etwa 20 % gefüllt. Und die Simulationsqualität ist gleich null - ist das ein Problem?

Vielleicht sollte ich gar nicht darauf achten, ich verstehe es einfach nicht ...

Vielen Dank im Voraus.

 
RedFish >> :

Hallo.

Ich teste gerade einen EA.

Zeitraum Tag (D1) 2008.09.01 00:00 - 2009.08.31 00:00 (2008.09.01 - 2009.09.01)
Modell Alle Ticks (die genaueste Methode auf der Grundlage aller kleinsten verfügbaren Zeitrahmen)
Bars in der Geschichte 1259 Modellierte Zecken 8769661 Qualität der Modellierung k.A.
Diagrammabweichungsfehler 225

Ich erhalte Unstimmigkeitsfehler. Gibt es eine Möglichkeit, sie zu vermeiden? Ich weiß nicht, ob es sich um eine große oder kleine Anzahl von Fehlern handelt. Die Waage ist überwiegend grün und dunkelgrün, aber nur zu etwa 20 % gefüllt. Und die Simulationsqualität ist gleich null - ist das ein Problem?

Vielleicht sollte ich gar nicht aufpassen, ich verstehe es einfach nicht ...

Vielen Dank im Voraus.

Ich weiß nicht, ich persönlich kümmere mich nie um solche Dinge (da ich Strategien fast immer ohne Visualisierung teste).


Die folgenden Ergebnisse habe ich bei Jude D1 mit einer ähnlichen Testphase erzielt

Versuch #1: Balken in der Historie - 1302 Ticks simuliert - 4313293 Qualität der Simulation - 50.00%

Versuch #2: Balken in der Historie - 1303 Modellierte Ticks - 4323442 Modellierungsqualität - 50.00%
Diagrammabweichungsfehler - 0.

 
Interesting писал(а) >>

Ich weiß nicht, ich persönlich kümmere mich nie um solche Dinge (da ich Strategien fast immer ohne Visualisierung teste).

Die folgenden Ergebnisse habe ich bei Jude D1 mit einer ähnlichen Testphase erzielt

Versuch #1: Balken in der Historie - 1302 Ticks simuliert - 4313293 Qualität der Simulation - 50.00%

Versuch #2: Historie: 1303 Balken - 1303 Ticks simuliert - 4323442 Modellierungsqualität - 50.00%
Fehler der Diagrammabweichung - 0.

Ich danke Ihnen.

Ich denke jetzt, dass MT automatisch die letzten 512 Balken füllt und den Rest .... Ich weiß nicht, wie ich es genau sagen soll. Mein Expert Advisor ist ein Trend Advisor und der Abstand ist für mich wichtig. 512 Balken sind nicht zu viel.

Was die anderen Symbole betrifft, können sie von einer separaten Website heruntergeladen und später heruntergeladen werden?

Ich danke Ihnen.

 

Guten Tag, liebe Freunde.

Ich war in letzter Zeit dumm, vielleicht liegt es am Wetter.

Können Sie mir bitte sagen, wie man ein eindimensionales Array (in einem Indikator) deklariert, wenn die Anzahl der Elemente des Arrays durch eine externe Variable festgelegt ist.

Ich danke Ihnen.

 
RedFish >> :

Hallo.

Ich teste gerade einen EA.

ZeitraumTag (D1) 2008.09.01 00:00 - 2009.08.31 00:00 (2008.09.01 - 2009.09.01)
ModellAlle Ticks (die genaueste Methode auf der Grundlage aller kleinsten verfügbaren Zeitrahmen)
Bars in der Geschichte1259Modellierte Zecken8769661Qualität der Modellierungk.A.
Diagrammabweichungsfehler225

Ich erhalte Unstimmigkeitsfehler. Gibt es eine Möglichkeit, sie zu vermeiden? Ich weiß nicht, ob es sich um eine große oder kleine Anzahl von Fehlern handelt. Die Waage ist überwiegend grün und dunkelgrün, aber nur zu etwa 20 % gefüllt. Und die Simulationsqualität ist gleich null - ist das ein Problem?

Vielleicht sollte ich gar nicht darauf achten, ich verstehe es einfach nicht ...

Vielen Dank im Voraus.

Im Folgenden meine IMHO, aber in Anführungszeichen - bitte korrigieren Sie mich, wenn ich falsch liege:

Der Punkt ist, dass Close 59th Minute, Close 45th Minute auf M15, Close 30th Minute auf M30 und Close auf H1 NICHT übereinstimmen dürfen.

Um dies zu erreichen, müssen Sie Ihre eigene Historie löschen, indem Sie die Historie vom Kursserver für einen kleineren Zeitraum herunterladen

und berechnen Sie alle Zeitrahmen anhand des heruntergeladenen Verlaufs neu.

In diesem Fall kann es auch sein, dass der tatsächliche Close auf verschiedenen Zeitskalen nicht übereinstimmt.

Mit anderen Worten: Sie sollten den kleineren Zeitrahmen nehmen und die Werte des größeren Zeitrahmens mit der Hand ablesen.

 
alderru >> :

Guten Tag, liebe Freunde.

Ich war in letzter Zeit dumm, vielleicht liegt es am Wetter.

Können Sie mir bitte sagen, wie man ein eindimensionales Array (in einem Indikator) deklariert, wenn die Anzahl der Elemente des Arrays durch eine externe Variable festgelegt ist.

Ich danke Ihnen.

int y[];

extern int blah-blah = 100;

init() {

ArrayResize(y, blah-blah);

}

 
jartmailru писал(а) >>

Mein untenstehendes IMHO, aber da es sich um Zitate handelt, korrigieren Sie mich bitte, wenn ich falsch liege:

Der Punkt ist, dass Close 59th Minute, Close 45th auf M15, Close 30th auf M30 und Close auf H1 NICHT übereinstimmen dürfen.

Um dies zu erreichen, müssen Sie Ihre eigene Historie löschen, indem Sie die Historie vom Kursserver für einen kleineren Zeitraum herunterladen

und berechnen Sie alle Zeitrahmen anhand des heruntergeladenen Verlaufs neu.

In diesem Fall kann es auch sein, dass der tatsächliche Close auf verschiedenen Zeitskalen nicht übereinstimmt.

Das heißt, Sie sollten den kleineren Zeitrahmen nehmen und die Werte des größeren Zeitrahmens ablesen.

О! Hände weg!!!

Danke für die Antwort. Aber nach dem ersten Teil zu urteilen, verstehe ich, dass die Fehler für mich nicht kritisch sind. Vielen Dank für die Erläuterung des Mechanismus dieser Fehler.

 
Meine Herren das Problem im Code kann helfen!
for ( shift = CountBars; shift>=0; shift--) 
{ 
         cci1 = iCCI(NULL, 0, kCCI, PRICE_TYPICAL, shift-1);
         cci2 = iCCI(NULL, 0, kCCI, PRICE_TYPICAL, shift);  

         if ( cci1>100) // (b4plusdi>b4minusdi && nowplusdi<nowminusdi)
         {
         val1[ shift]=Low[ shift]-5*Point;
         if ( flagval2==0) { Alert("не забудь отправить письмо о БАЙ"); flagval2=1; flagval1=0;}
         }
         if ( cci1<-100) //(b4plusdi<b4minusdi && nowplusdi>nowminusdi) 
         {
         val2[ shift]=High[ shift]+5*Point;
         if ( flagval1==0) { Alert("не забудь отправить письмо о СЕЛЛ"); flagval2=0; flagval1=1;}
         }
   }
   return(0);
}

ganz oben:

int flagval1=0;
int flagval2=0;

Ich habe speziell mit diesen Flaggen Schwierigkeiten, kann jemand einen neuen Blick darauf werfen?

-----------------

und es gibt auch ein Problem mit dem EA-Code:

//---------------------------------------------------------------- 5.1 
   cci1 = iCCI(NULL, 0, kCCI, PRICE_TYPICAL, 1);

   if ( New_Bar==true && cci1>100 && flagval2==1)                // && MA_3_t==0   && wayDOWN==true
     {                                            
         Opn_B=true; New_Bar=false; Cls_S=true;                                  
         flagval1=1;
         flagval2=0;
     }
     
   if ( New_Bar==true && cci1<-100 && flagval1==1)                 // && MA_4_t==0  && wayUP==true
     {                                                   
         Opn_S=true; New_Bar=false; Cls_B=true;
         flagval2=1;
         flagval1=0;
     }
//--------------------------------------------------------------- 6 --

Das ist kein Handel! Vielleicht wird jemand einen neuen Blick darauf werfen.

beschlossen, dumm, sobald die 100 (-100) geht zu handeln!

Ich befestige EA!

Dateien:
stoch_cros.mq4  17 kb
Grund der Beschwerde: