Heeeelp! heeeelp! - Seite 3

 
Alles funktioniert gut, wenn ich eine feste Losgröße eingestellt ist gut, aber ich will eine dynamische Losgröße. Also habe ich mir das obige Skript ausgedacht, aber es funktioniert nicht, und ich kenne das Problem nicht. @raptor ich möchte $100 der $1000 Balance, die ich verstehe, ist 0,1 Lot, da meine Hebelwirkung ist 1:100, aber ich möchte es dynamisch, so dass, wenn das System Gewinne und Balance wird höher sagen, neue Balance wird $2000 Ich möchte es jetzt zu öffnen Trades mit $200 (0,2 Lot) unter Berücksichtigung der Prozentsatz, den ich eingestellt, dh 10%, 20% oder jede der Balance / Marge ich eingestellt. @ onewithzachy ordersend ist in Ordnung, da es funktioniert, wenn ich feste Losgröße z.B.
double lots=0.1;
eingestellt
, aber wenn ich versuche, es zu dynamisieren, wie unten es sagt falsche Losgröße.Mein Konto ist Mikro und unterstützt mindestens 0,01 lot.
extern int LotPercentage=10; // use 10% of balance as lot size

int start()
{

double LotInBalance=(LotPercentage/100)*AccountBalance(); // find the amount that is 10% of balance lets assume its $1000
double LotUnits=LotBalance*AccountLeverage(); // multiply this 10% balance($100) by leverage to get lot units
double lots=NormalizeDouble((LotUnits/100000),2); // expected to return 0.1
/* divide this lot units by 100,000(standard lot size units) and normalize to 2 decimal places to get something like 0.1 if account balance is say $1000 for use in ordersend()*/

...

return 0;

}
Auch dies gibt den gleichen Fehler, während seine noch einfacher
double lots;
double Balance=AccountBalance();
if(Balance<=500){lots=0.1;}                // If my account has $500 or less the lot will be 0.1
if(Balance<1500&&Balance>1000){lots=0.3;}
if(Balance<2500&&Balance>2000){lots=0.5;}
if(Balance<3500&&Balance>3000){lots=0.7;}
if(Balance<4500&&Balance>4000){lots=0.9;}
if(Balance<5500&&Balance>5000){lots=1.1;}
if(Balance<6500&&Balance>6000){lots=1.3;}
if(Balance<7500&&Balance>7000){lots=1.5;}
if(Balance<8500&&Balance>8000){lots=1.7;}
if(Balance<9500&&Balance>9000){lots=1.9;}
if(Balance>10000){lots=2;}                      // If account balance if over 10000 lot is 2

if(/*opening criteria met*/){
OrderSend(Symbol(),OP_BUY,lots,...)
}
Bitte lesen Sie Kommentare, die ich in den Code aufgenommen haben, besser zu verstehen.
 

TUN SIE DIES NICHT MIT ECHTEM GELD.

Wollen Sie 10 % verlieren oder eine Position mit 10 % eröffnen? (Antwort: das erste!)

double lots;                               // <<== value is zero
double Balance=AccountBalance();

if(Balance<=500){lots=0.1;}                // What the lots if Balance > 500 && <= 1000 ?

if(Balance<1500&&Balance>1000){lots=0.3;}  // read this carefully : if balance bigger than but not equal with 1000
                                           // AND balance also smaller but not equal than 1500.
                                           // Question : what's the lot if balance equal with 1000 and 1500 ?
 

Ich möchte eine Position mit 10% eröffnen, so wie jemand $1000 auf sein Konto einzahlen und Positionen mit 0,1 Lot (10% bei einem Hebel von 1:100) eröffnen kann.

onewithzachy Sie haben Recht, ich habe es ändern, um die unten und es funktionierte, aber die Strategie-Test kam aus ärmeren ich denke, seine beste zu verwenden, feste Lose.

double Balance=AccountBalance();
if(Balance<=500||(Balance>500&&Balance<1000)){lots=0.1;}
if((Balance<=1500&&Balance>=1000)||(Balance>1500&&Balance<2000)){lots=0.3;}
if((Balance<=2500&&Balance>=2000)||(Balance>2500&&Balance<3000)){lots=0.5;}
if((Balance<=3500&&Balance>=3000)||(Balance>3500&&Balance<4000)){lots=0.7;}
if((Balance<=4500&&Balance>=4000)||(Balance>4500&&Balance<5000)){lots=0.9;}
if((Balance<=5500&&Balance>=5000)||(Balance>5500&&Balance<6000)){lots=1.1;}
if((Balance<=6500&&Balance>=6000)||(Balance>6500&&Balance<7000)){lots=1.3;}
if((Balance<=7500&&Balance>=7000)||(Balance>7500&&Balance<8000)){lots=1.5;}
if((Balance<=8500&&Balance>=8000)||(Balance>8500&&Balance<9000)){lots=1.7;}
if((Balance<=9500&&Balance>=9000)||(Balance>9500&&Balance<10000)){lots=1.9;}
if(Balance>10000){lots=2;} 
 
jameslarry:
Alles funktioniert gut, wenn ich eine feste Losgröße eingestellt ist gut, aber ich will eine dynamische Losgröße. Also habe ich mir das obige Skript ausgedacht, aber es funktioniert nicht, und ich kenne das Problem nicht. @raptor ich möchte $100 der $1000 Balance, die ich verstehe, ist 0,1 Lot, da meine Hebelwirkung ist 1:100, aber ich möchte es dynamisch, so dass, wenn das System Gewinne und Balance wird höher sagen, neue Balance wird $2000 Ich möchte es jetzt zu öffnen Trades mit $200 (0,2 Lot) unter Berücksichtigung der Prozentsatz, den ich eingestellt, dh 10%, 20% oder jede der Balance / Marge ich eingestellt. @ onewithzachy ordersend ist in Ordnung, da es funktioniert, wenn ich eine feste Losgröße einstelle, d.h.aber wenn ich versuche, es wie unten zu dynamisieren, wird eine falsche Losgröße angezeigt. Mein Konto ist ein Micro-Konto und unterstützt mindestens 0,01 Lot. Auch dies gibt den gleichen Fehler zurück, obwohl es noch einfacher ist. Bitte lesen Sie die Kommentare, die ich in den Code eingefügt habe, um besser zu verstehen.
Ich glaube, Sie haben ein großes Missverständnis, wie die Dinge funktionieren... Margin-Anforderung und Risiko sind nicht dasselbe ... wenn Sie eine Positionsgröße basierend auf einer Margin-Anforderung von $100 erstellen und Ihr Handel verliert, können Sie sehr viel mehr oder weniger als Ihre $100 verlieren ... Die Margin-Anforderung ändert sich mit dem Leverage. Das Risiko ändert sich nicht.
 
Nein, warten Sie, es hat etwas Turbo hinzugefügt, ich hatte es falsch getestet. Es wäre toll, wenn ich es mit einer Formel berechnen könnte, anstatt mit Tonnen von if-Anweisungen. Ist es möglich, eine Formel abzuleiten?
 
In manchen Situationen durchaus riskant, z. B. 2012 hätte ich mit Turbo verloren, aber ohne Turbo gewonnen.
 
Welches ist der sicherste Weg?
 
jameslarry:
Nein, warten Sie, es hat etwas Turbo hinzugefügt, ich hatte es falsch getestet. Es wäre toll, wenn ich es mit einer Formel berechnen könnte, anstatt mit Tonnen von if-Anweisungen. Ist es möglich, eine Formel abzuleiten?
Ja, tragen Sie Ihre Punkte in ein Diagramm ein, und dann können Sie eine lineare Gleichung in der Form y = mx + c aufstellen
 
jameslarry:
Welches ist der sicherste Weg?
Was zu tun ... Sie haben nicht wirklich erklärt, was Sie tun wollen ... obwohl Ihnen konkrete Fragen gestellt wurden . . wenn Sie Fragen ignorieren, die gestellt werden, damit Ihnen geholfen werden kann, werden Sie sehr schnell ignoriert.