Jump to content
Co nového? Mé kurzy
Komunita:
Diskuze Sledované příspěvky Žebříčky

MetaTrader 4


Volf

Doporučené příspěvky

  • Odpovědí 4,3k
  • Vytvořeno
  • Poslední

Nejaktivnější diskutující

Nejaktivnější diskutující

Publikované obrázky

Prosím pomoc s jednou záležitostí.
Dalo by se zařídit, aby jedna pozice měla dvě "SL"? S možností libovolného posouvání a určování výšky části pozice pro dané SL.
Chápu, že je blbost aby na jeden obchod byli u brokera SL po částech, ale například ve formě nějakého "systému", scriptík? Třeba cross s horizontální linií (hodnotou).
Vlastně vyšší SL by mohlo být klasické s tím, že mezi cenou a SL by byla ještě jedna čára ("SL") kde by se případně uzavřelo část pozice.
:S

Link to comment
Sdílet pomocí služby

Pro obchodování na FX používám dlouhodobě Amibroker a VT, používám TA většinou vlastní, ale každopádně takovou, která v MT, na který chci přejít není k dispozici. Programování v MT je značně odlišné od výše uvedených software, rád bych totuo cestou požádal někoho o přepis - jedná se o nepříliš náročné 3 TA, pro zkušeného tvůrce MT scriptů práce na hodinu. Díky


Link to comment
Sdílet pomocí služby

Prajem dobry den.
Dufam, ze mi niekto z vas, ktori sa vyznaju v programovani pomozu. Mam takyto problem: Pouzivam k obchodovaniu platformu X-Trader na demo ucte, zatial. Pre vstup a vystup pouzivam Indikator Fisher Yur4ik Winning Solution. Zatial ho testujem. V backtestoch je mierne v zisku.

Potreboval by som od vas upravit tento skript, ktory by mi umoznil vstupit do pozicie buy s minilotom 0,2 okamzite a automaticky, akonahle hodnota v indikatore Fisher vystupi nad 0 a potom automaticky zavriet poziciu, ak hodnota v indikatore Fisher klesne pod 0. To iste potrebujem aplikovat i na sell obchody, teda opacnym smerom.
Pripajam skript od Fishera Yur4ik:

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Black
#property indicator_color2 Lime
#property indicator_color3 Red

extern int period=10;

double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];


int init()
{


SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2,Red);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2,Lime);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(Digits+1);

SetIndexBuffer(0,ExtBuffer0);
SetIndexBuffer(1,ExtBuffer1);
SetIndexBuffer(2,ExtBuffer2);

IndicatorShortName("Winning Solution - Fisher");
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);

return(0);
}


int start()
{
//int period=10;
int limit;
int counted_bars=IndicatorCounted();
double prev,current,old;
double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0;
double price;
double MinL=0;
double MaxH=0;


if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;


for(int i=0; i { MaxH = High[Highest(NULL,0,MODE_HIGH,period,i)];
MinL = Low[Lowest(NULL,0,MODE_LOW,period,i)];
price = (High[i]+Low[i])/2;
Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;
Value=MathMin(MathMax(Value,-0.999),0.999);
ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
Value1=Value;
Fish1=ExtBuffer0[i];

}


bool up=true;
for(i=limit-2; i>=0; i--)
{
current=ExtBuffer0[i];
prev=ExtBuffer0[i+1];

if (((current0))||(current if (((current>0)&&(prev0)) up= true;

if(!up)
{
ExtBuffer2[i]=current;
ExtBuffer1[i]=0.0;
}

else
{
ExtBuffer1[i]=current;
ExtBuffer2[i]=0.0;
}
}

return(0);
}

Dakujem vopred za preprogramovanie, viem ze nie kazdy je tu programator. Ja urcite nie som.

Link to comment
Sdílet pomocí služby

To Volf,
prosím o pomoc. Pri prepise z MT3 do MT4 mi robí problém funkcia "switch".
Var : TS(0), rozsah(0);
Switch Symbol
Begin
Case "GBPJPY":
TS=85;
rozsah=80;
Case "USDJPY":
TS=40;
rozsah=30;
Default:
TS=30;
rozsah=30;
End;

Portebujem to preložiť/prepísať/ do MT4.
int: TS, rozsah;
Switch (Symbol())
{
Case "GBPJPY":
TS=85;
rozsah=80;
Case "USDJPY":
TS=40;
rozsah=30;
Default:
TS=30;
rozsah=30;
};
mi hlási chybu : EURUSD - intger number expected
Ďakujem Karci

Link to comment
Sdílet pomocí služby

Z helpu Metaeditoru:
It compares the expression value with constants in all variants of case and gives control to the operator that corresponds with the expression value. Each variant of the case can be marked with an integer or literal constant or with a constant expression. The constant expression cannot contain variables or function calls. Expression of the switch operator must be of integer type.

switch(expression)
{
case constant: operators
case constant: operators
...
default: operators
}


Operators connected with the default label are executed if none of the constants in case operators equals the expression value. The default variant must not be necessarily final. If none of the constants corresponds to the expression value and the default variant is not available, no actions are executed. The keyword case and the constant are just labels, and if operators are executed for some case variant, the program will further execute the operators of all following variants until break operator occurs. It makes it possible to bind a subsequence of operators with several variants.

Chce to číselnou hodnotu nebo konstantu, která reprezentuje číslo (např. OP_BUY). Kromě toho se nepoužívají velká písmena ani středník na konci bloku. Naopak se používá operátor break pro ukončení jednotlivých case. Použij operátor if-else a bude po problému.

Link to comment
Sdílet pomocí služby

Návštěvník
Téma je uzavřené.

×
×
  • Vytvořit...