Cześć
W Metatrader 4 chciałbym mieć ustawioną domyślnie wielkość pozycji w LOT, w zależności od:
- danej pary walutowej
- (jakby się dało to też) od aktualnie otwartego wykresu (np. 0,04 LOT-a dla H4 i 0,05 LOT-a dla H1)
Czy istnieje taka możliwość?
Domyślny LOT dla danej pary i TF
Re: Domyślny LOT dla danej pary i TF
W samym Metatraderze to nie, ale już w skrypcie za pomocą którego będziesz składał zlecenia można, np tak:
Wybór skryptu zależy już od Ciebie, jest ich wiele, wystarczy później tylko dopisać powyższe warunki.
Kod: Zaznacz cały
//+------------------------------------------------------------------+
//| Buy.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
#include <stdlib.mqh>
#property show_inputs
extern double TakeProfit = 0;
extern double StopLoss = 0;
extern string Comments = "B";
extern int Magic = 123;
extern int Slippage = 30;
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
double sl=0, tp=0;
if (StopLoss >0) sl=Ask-StopLoss*Point; else sl=0;
if (TakeProfit>0) tp=Ask+TakeProfit*Point; else tp=0;
//----
int ticket=-1;
while(ticket<0)
{
ticket=OrderSend(Symbol(),OP_BUY,WielkoscPozycji(),Ask,Slippage,sl,tp,Comments,Magic,0,clrBlue);
if(ticket<0)Print("Blad otwarcia pozycji (",ErrorDescription(GetLastError()),")");
}
//----
return(0);
}
//+------------------------------------------------------------------+
double WielkoscPozycji() {
double Lot = 0.01; //wartość dla wszystkich pozostałych par.
//----
if ((Symbol() == ("EURUSD") && Period()) == true){
switch (Period())
{
case 1: Lot = 0.01; break;
case 5: Lot = 0.02; break;
case 15: Lot = 0.03; break;
case 30: Lot = 0.04; break;
case 60: Lot = 0.05; break;
case 240: Lot = 0.06; break;
case 1440: Lot = 0.07; break;
case 10080: Lot = 0.08; break;
case 43200: Lot = 0.09; break;
}
}
//----
if ((Symbol() == ("GBPUSD") && Period()) == true){
switch (Period())
{
case 1: Lot = 0.01; break;
case 5: Lot = 0.02; break;
case 15: Lot = 0.03; break;
case 30: Lot = 0.04; break;
case 60: Lot = 0.05; break;
case 240: Lot = 0.06; break;
case 1440: Lot = 0.07; break;
case 10080: Lot = 0.08; break;
case 43200: Lot = 0.09; break;
}
}
//----
return (Lot);
}
//+------------------------------------------------------------------+