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

 
extern double SL=20; // SL для открываемого ордера
extern double TP=20; // ТР для открываемого ордера
extern double Lot=0.01; // Жестко заданное колич. лотов
datetime time;
//--------------------------------------------------------------- 2 --
int start()
{
int Total;

double
M_0,
M_1;


bool
Ans =false, // Ответ сервера после закрытия
Cls_B=false, // Критерий для закрытия Buy
Cls_S=false, // Критерий для закрытия Sell
Opn_B=false, // Критерий для открытия Buy
Opn_S=false; // Критерий для открытия Sell

//--------------------------------------------------------------- 3 --
// Учёт ордеров


for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()>1)Total++;

if(Total!=0 || time==Time[1])return;


// Торговые критерии

M_0=iOsMA(NULL,0,13,34,8,0,0); // 0 бар
M_1=iOsMA(NULL,0,13,34,8,0,1); // 1 бар



if (M_1<0 && M_0>0)
Opn_B=true;

if (M_1>0 && M_0<0)
Opn_S=true;

//--------------------------------------------------------------- 7 --


if (Opn_B)
{OrderSend(Symbol(),OP_BUY,Lot,Ask,0,Bid-SL*Point,Bid+TP*Point);time=Time[1];}

if (Opn_S)
{OrderSend(Symbol(),OP_SELL,Lot,Bid,0,Ask+SL*Point,Ask-TP*Point);time=Time[1];}
}


Ein EA , der eine Position eröffnet, wenn der OsMA die Nulllinie kreuzt. Es ist nicht klar, wo sie sich öffnet, und es ist nicht klar, warum. Kann jemand nachsehen, vielleicht ein Fehler in iOsMA(NULL,0,13,34,8,0,0)?
 
T.H.C.:

Ein EA, der eine Position eröffnet, wenn der OsMA die Nulllinie kreuzt. Es ist nicht klar, wo sie sich öffnet, und es ist nicht klar, warum. Kann jemand überprüfen, ob ein Fehler in iOsMA(NULL,0,13,34,8,0,0) vorliegt?

Testen Sie auf alle Zecken?
 
001:


Vielen Dank für die Antwort. Ich habe einen rudimentären EA skizziert. Funktioniert immer noch nicht.


in diesem Code, suchen Sie nach Fehlern, OrderSend Funktion drücken Sie F1 wird die Hilfe in der Standard-Editor, schauen Sie sich die Reihenfolge der eingehenden Parameter gibt es einen Fehler.

+ Verwenden Sie Print / Alert, um die Variablenwerte durchzugehen, und fügen Sie es in den Codeabschnitt nach ( assignments / execute ) ein.

und denken Sie daran, die Ausgabe zu normalisieren, DoubletoSt..NormalizeDouble..TimeToStr

Im Anhang finden Sie 2 kostenlose Bibliotheken mit Code von kimIV.

Der Code ist einfach, vorgefertigte Funktionen, sehr gut für Anfänger.

Dateien:
_lib2.zip  10 kb
 

// Kaum eine bestimmte Anzahl von Losen :)

 
T.H.C.:
Ja

Dann kommt es zu einem Rattereffekt am Nulldurchgang.
 
Vinin:

Tests an allen Zecken?
Ja
 

Wie lässt sich der Fluss des Unmuts zu den Entwicklungszentren "stoppen"?

Nachfolgend finden Sie einen Auszug aus dem Protokoll:

10:00:25 Alter Tick EURUSD30 1,38730/1,38740
10:00:25 Alter Tick EURUSD240 1,38730/1,38740
10:00:25 Alter Tick EURUSD1440 1.38730/1.38740
10:00:25 Alter Tick EURUSD15 1,38730/1,38740
10:00:25 Alter Tick EURUSD1 1,38730/1,38740
10:00:25 Alter Tick EURUSD60 1,38730/1,38740
10:00:25 Alter Tick EURUSD5 1.38730/1.38740
11:00:34 Alter Tick EURUSD30 1.38847/1.38863
11:00:34 Alter Tick EURUSD240 1.38847/1.38863
11:00:34 Alter Tick EURUSD1440 1.38847/1.38863
11:00:34 Alter Tick EURUSD15 1.38847/1.38863
11:00:34 Alter Tick EURUSD1 1.38847/1.38863
11:00:34 Alter Tick EURUSD60 1.38847/1.38863
11:00:34 Alter Tick EURUSD5 1.38847/1.38863
11:25:06 Alter Tick EURUSD30 1.38707/1.38722
11:25:06 Alter Tick EURUSD240 1.38707/1.38722
11:25:06 Alter Tick EURUSD1440 1.38707/1.38722
11:25:06 Alter Tick EURUSD15 1.38707/1.38722
11:25:06 Alter Tick EURUSD1 1.38707/1.38722
11:25:06 Alter Tick EURUSD60 1.38707/1.38722

 
Vinin:

Dann kommt es zu einem Rattereffekt am Nulldurchgang.
Was ist also zu tun? Eine weniger genaue Methode? Gibt es keinen anderen Ausweg? Wird es auch Chatter geben, wenn dieser EA läuft?
 

Bereitet Ihnen der Test Kopfschmerzen?

 

//Handelskriterien

M_0 ={ iOsMA(0,0,13,34,8,0,1) }; //| 1bar
M_1 ={ iOsMA(0,0,13,34,8,0,2) }; //| 2bar

Opn_B ={ (((M_1<0)==1) &&((M_0>0)==1) ) };
Opn_S ={ (((M_1>0)==1) &&((M_0<0)==1) ) };

Versuchen Sie es auf diese Weise, aber ohne das Rütteln:)