コーディングの方法は? - ページ 221

 

行を移動させたいのでよろしくお願いします。

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

このインジケータは設計通りに動作します。しかし、私はそれを拡張したい。私はこれをしたい。

以下のインジケータをコピーして、次の2つの修正を行ってください。

修正#1。

ストップロス設定をしていない場合は、アラームが作動しないようにラインを500ピップス先に移動させる。

修正その2。

takeprofit1というラインを作り(これはコードにはありません)、そのラインを私のストップロスの位置まで移動してください。また、異なるサウンドアラートを使用します。

このインジケータは損切りと利益確定をチェックし、損切りと利益確定が設定されていない場合は、それぞれの価格に合わせてラインを500,502ピップス先に移動させることになります。

そうすれば、マーケットが私の利益や損切りをヒットしたときに、メタトレーダーを見ていないときやウィンドウを最小化しているときに、音で知らせてくれます。

この度はありがとうございました。

//+------------------------------------------------------------------+

//|HLine Alert.mq4||HLine Alert.mq4||HLine Alert.mq4

//+------------------------------------------------------------------+

#property copyright ""

#property indicator_chart_window(インジケーターチャートウィンドウ

extern string LineName="Stoploss1"。

extern color LineColor=Red;

extern int LineStyle=STYLE_SOLID;

extern int AlertPipRange=1;

extern string AlertWav="Alert2.wav"; extern string AlertWav="Alert2.wav";

//+------------------------------------------------------------------+

//| カスタムインジケータ 初期化関数

//+------------------------------------------------------------------+

int init()

{

//---- インジケータ

//----

return(0);

}

//+------------------------------------------------------------------+

//| カスタムインジケータ初期化関数

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| カスタムインジケーターイテレーション関数

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

ObjectCreate(LineName, OBJ_HLINE, 0, 0, Bid);

ObjectSet(LineName, OBJPROP_STYLE, LineStyle); ObjectSet(LineName, OBJPROP_STYLE, LineStyle);

ObjectSet(LineName, OBJPROP_WIDTH, 2); ObjectSet(LineName, OBJPROP_WIDTH, 2);

ObjectSet(LineName, OBJPROP_COLOR, LineColor); ObjectSet(LineName, OBJPROP_COLOR, LineColor);

double val = ObjectGet( LineName, OBJPROP_PRICE1);

if (Bid-AlertPipRange*Point = val) PlaySound(AlertWav);

//----

//----

return(0);

}

//+--------------------------------------------------------------

 
increase:
以下は、私が作成したアラート付きのMTFバージョンです。

こんにちは、増田です。

あなたのインジケータ(アラート付き)をダウンロードし、修正したのですが、少しエラーがあります。

一度ポップアップ矢印ダウンラベルを表示し、その逆...

そして、どのようにアラートをEメールに送信するように設定するのでしょうか?

すべてのTFの電子メール。

事前にuよりも

ファイル:
afstar.mq4  6 kb
 

私は助けを必要としてください

私が発見したスキャルピング戦略のロボットを開発したいのですが、コードの書き方でどなたか助けていただけませんか?

 

皆さん。

ここに添付された画像の ように、移動平均の交差と終了時にアラートを出すための簡単なコードがあります。

私は、if文に何か問題があると思います、確認してください。

事前にありがとうございます。

//+------------------------------------------------------------------+

#property copyright "Non"

#property link "non"

#property indicator_chart_window

extern int Time_Frame = PERIOD_M5;

extern int MA_Period = 20;

extern int MA_Method = MODE_SMA;

extern int MA_applied_to = PRICE_CLOSE;

extern bool Enabled = true;

extern int WhatCorner=2;

int PrevAlertTime=0;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

ObjectDelete("Alart_Condition");

ObjectDelete("Alart_Setup");

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int BarsCount=IndicatorCounted();

if (Enabled == false)

{

string Alart_Condition = "Alart Disabled";

ObjectCreate("Alart_Condition", OBJ_LABEL, 0, 0, 0);

ObjectSetText("Alart_Condition", Alart_Condition , 12, "Comic Sans MS", Red);

ObjectSet("Alart_Condition", OBJPROP_CORNER, WhatCorner);

ObjectSet("Alart_Condition", OBJPROP_XDISTANCE, 1);

ObjectSet("Alart_Condition", OBJPROP_YDISTANCE, 1);

return (0);

}

// if (!Enabled) return (0);

if (Enabled == true)

{

string Alart_Setup = (GetMethodText1(MA_Method)+ (DoubleToStr(MA_Period,0))+")"+ GetMethodText(MA_applied_to)) ;

ObjectCreate("Alart_Setup", OBJ_LABEL, 0, 0, 0);

ObjectSetText("Alart_Setup", Alart_Setup , 12, "Comic Sans MS", Red);

ObjectSet("Alart_Setup", OBJPROP_CORNER, WhatCorner);

ObjectSet("Alart_Setup", OBJPROP_XDISTANCE, 1);

ObjectSet("Alart_Setup", OBJPROP_YDISTANCE, 1);

}

// if close of i < iMA && iMA < close of i-1 && last time alart .. then sell

for (int i=Bars;i>=1;i--)

{

double m = iMA(NULL,Time_Frame,MA_Period,0,MA_Method,MA_applied_to,i);

if ((CurTime() - PrevAlertTime > 20) && Close < m && m < Close)

{

Alert ("Sell " + Symbol());

PlaySound ("alert.wav");

PrevAlertTime=CurTime();

return(-1);

}

// if close of i-1 < iMA && iMA < close of i && last time alart .. then buy

if ( (CurTime() - PrevAlertTime > 20) && Close < m && m < Close )

{

Alert ("Buy "+ Symbol());

PlaySound ("alert.wav");

PrevAlertTime=CurTime();

return(-1);

}

}

//----

//----

return(0);

}

string GetMethodText1(int MA_Method)

{ switch(MA_Method)

{

case 0 : return("SMA("); break;

case 1 : return("EMA("); break;

case 2 : return("SMMA("); break;

case 3 : return("LWMA("); break; }

}

string GetMethodText(int MA_applied_to)

{

switch(MA_applied_to)

{case 0: return("C"); break; // Close

case 1: return("O"); break; // Open

case 2: return("H"); break; // High

case 3: return("L"); break; } // Low

}

//+------------

ファイル:
q.gif  10 kb
 

スクリプトに関するヘルプ

こんにちは。

このスクリプトの何が問題なのか、どなたか教えていただけませんか?

4109 ERR_TRADE_NOT_ALLOWED... メッセージがMT4で "Invalid price 1.48770000 forOrderSend function" ですが、なぜかわかりません......。だから、ここで私を助けてください...

int start()

{

double High1;

double Low1;

double TP = 50;

double SL = 50;

int Lots = (((AccountBalance()/15)/50)/10);

//----

{

High1 = iHigh(NULL, PERIOD_D1, 0);

Low1 = iLow(NULL, PERIOD_D1, 0);

double Buy = High1*Point;

double Sell= Low1*Point;

Print(Buy);

Print(Sell);

}

//----

{

OrderSend(Symbol(),OP_BUYSTOP,Lots,Buy,NULL,Ask-SL*Point,Ask+TP*Point);

OrderSend(Symbol(),OP_SELLSTOP,Lots,Sell,3,Bid+SL*Point,Bid-TP*Point);

Alert (GetLastError());

}

//----

return(0);

}
 

ヘルプ

取引不可の問題が解決されました。

しかし、"Invalid Stop"のエラーが出続けています...どなたか教えてください...?何が問題なのか本当に理解できません...

ありがとうございました。

int start()

{

double High1;

double Low1;

int TP = 50;

int SL = 50;

int Lots = (((AccountBalance()/15)/50)/10);

//----

{

High1 = iHigh(NULL, PERIOD_D1, 0);

Low1 = iLow(NULL, PERIOD_D1, 0);

Print(High1);

Print(Low1);

}

//----

{

OrderSend(Symbol(),OP_BUYSTOP,Lots,High1,NULL,Ask-SL*Point,Ask+TP*Point);

OrderSend(Symbol(),OP_SELLSTOP,Lots,Low1,NULL,Bid+SL*Point,Bid-TP*Point);

Alert (GetLastError());

}

//----

return(0);

}
 

取引回数を制限したいのですが。

EAにコードを追加 して、1日に行う取引の回数を2回に制限しようとしています。 1日にロングトレードとショートトレードを1回ずつ行うだけです。 これは私がこれまで持っているコードですが、バックテストでそれは動作していません。

あなたは私を助けることができる!?

datetime LongTrade=0;

datetime ShortTrade=0;

if(countOrders(OP_BUY,magic)==0 && LongTrade!=iTime(NULL,PERIOD_D1,0))

{

OrderSend(Symbol(),OP_BUY,lots,Ask,0,Bid-stop_loss*Point,lTP,comment + "lTP",magic);

LongTrade=iTime(NULL,PERIOD_D1,0);

return(0);

}

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

if(countOrders(OP_SELL,magic)==0 && ShortTrade!=iTime(NULL,PERIOD_D1,0))

{

OrderSend(Symbol(),OP_SELL,lots,Bid,0,Ask+stop_loss*Point,sTP,comment + "sTP",magic);

ShortTrade=iTime(NULL,PERIOD_D1,0);

return(0);

}

ありがとうございます。

 
ForExTyro:
EAにコードを追加して、1日に行う取引の回数を2回に制限しようとしています。 1日にロングトレード1回、ショートトレード1回だけです。 これは私がこれまで持っているコードですが、バックテストでそれは動作しません。 あなたは私を助けることができる!?

置換

datetime LongTrade=0;

datetime ShortTrade=0;

static datetime LongTrade=0;

static datetime ShortTrade=0;

 

このEAとインジケータで助けてください

私は初心者なので、こんにちは。

私はこのインディケータ(ヒストグラム/ 300バーを振り返る)を持っていますが、それははるかにWAYを再描画します。誰もがまだ同じjob.Thisを行うことはありません指標を示唆していることができますあなたが助けることができれば、それは素晴らしいことだ、それはそれです。

チャーリーCをお待ちしております。

histoind.mq4

#プロパティ indicator_chart_window

#property indicator_buffers 2 (インジケータバッファ2)

#property indicator_color1 レッド

#property indicator_color2 ローングリーン

文字列 gs_unused_124 = "";

bool gi_unused_132 = FALSE;

extern int RISK = 3;

extern int CountBars = 300;

double g_ibuf_144[];

double g_ibuf_148[]です。

int init() {

IndicatorBuffers(2);

SetIndexStyle(0, DRAW_ARROW).SetIndexStyle(0)を設定します。

SetIndexArrow(0, 234);

SetIndexStyle(1, DRAW_ARROW).SetIndexArrow(1,234)を設定します。

SetIndexArrow(1, 233);

SetIndexBuffer(0, g_ibuf_144).SetIndexStyle(1,DRAW_ARROW)を設定します。

SetIndexBuffer(1, g_ibuf_148); SetIndexBuffer(1, g_ibuf_148);

Comment();

return (0);

}

int start() {

int li_12;

double ld_52;

double ld_60

double ld_68;

double ld_76;

double ld_84;

double ld_92;

double ld_100;

double lda_108[50000];

SetIndexDrawBegin(0, Bars - CountBars + 11 + 1);

SetIndexDrawBegin(1, Bars - CountBars + 11 + 1);

int l_ind_counted_8 = IndicatorCounted();

int li_20 = RISK * 2 + 3;

double ld_36 = RISK + 67;

double ld_44 = 33 - RISK;

int l_period_24 = li_20;

if (Bars <= 12) return (0);

if (l_ind_counted_8 < 12) {。

for (int li_0 = 1; li_0 <= 0; li_0++) g_ibuf_144[CountBars - li_0] = 0.0;

for (li_0 = 1; li_0 <= 0; li_0++) g_ibuf_148[CountBars - li_0] = 0.0です。

}

for (int li_4 = CountBars - 11 - 1; li_4 >= 0; li_4--) { { { li_12 = li_4; li_12 = li_4; li_12 = li_4

li_12 = li_4;

ld_76 = 0.0;

ld_84 = 0.0;

for (li_12 = li_4; li_12 <= li_4 + 9; li_12++) ld_84 += MathAbs(High[li_12] - Low[li_12])。

ld_76 = ld_84 / 10.0;

li_12 = li_4;

ld_68 = 0;

while (li_12 < li_4 + 9 && ld_68 < 1.0) {。

if (MathAbs(Open[li_12] - (Close[li_12 + 1])) >= 2.0 * ld_76) ld_68 += 1.0;

li_12++;

}

if (ld_68 >= 1.0) ld_92 = li_12;

else ld_92 = -1;

li_12 = li_4;

ld_68 = 0;

while (li_12 < li_4 + 6 && ld_68 < 1.0) {。

if (MathAbs(Close[li_12 + 3] - Close[li_12]) >= 4.6 * ld_76) ld_68 += 1.0;

li_12++;

}

if (ld_68 >= 1.0) ld_100 = li_12;

else ld_100 = -1;

if (ld_92 > -1.0) l_period_24 = 3;

else l_period_24 = li_20;

if (ld_100 > -1.0) l_period_24 = 4;

else l_period_24 = li_20;

ld_52 = 100 - MathAbs(iWPR(NULL, 0, l_period_24, li_4));

lda_108[li_4] = ld_52;

g_ibuf_144[li_4] = 0;

g_ibuf_148[li_4] = 0; g_ibuf_148[li_4] = 0;

ld_60 = 0とする。

if (ld_52 < ld_44) {。

for (int li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) { { {?

if (lda_108[li_4+li_16])>ld_36){(li_4+li_16)}。

ld_60 = High[li_4] + ld_76 / 2.0;

g_ibuf_144[li_4] = ld_60;

}

if (ld_52 > ld_36) {。

for (li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) { { {?

if (lda_108[li_4+li_16])<ld_44){(li_16+li_36)}。

ld_60 = Low[li_4] - ld_76 / 2.0;

g_ibuf_148[li_4] = ld_60;

}

}

return (0);

}

ファイル:
histoind.mq4  3 kb
 

を恬る。

申し訳ございません。

チャーリーC