[アーカイブ!】無料でアドバイザーを書きます。 - ページ 13

 

こんにちは。

コードで次のように正しく処方する方法をご存知の方は教えてください。

MACD Histogramm WISというインディケータが あります。ヒストグラムは、そのコードとカラーバーで計算され、線の方向によって、異なる色でフィルタのmacd。

int start()
{
int limit,i;
int counted_bars = IndicatorCounted();

if(counted_bars > 0) counted_bars--;
limit = iBars(NULL,0) - counted_bars;

bufferResize(Filter);
BufferResize(Histogram);

for(i = 0; i <= limit; i++)
MACD[i] = iMA(NULL, 0, FastMA, 0, MAMethod, MAAppliedPrice, i) - iMA(NULL, 0, SlowMA, 0, MAMethod, MAAppliedPrice, i).MACD(i) = iMA(NULL, 0, SlowMA, 0, MAAppliedPrice, i).MAMethod, MAAppliedPrice, i);
for(i = 0; i <= limit; i++)
Signal[i] = iMAOnArray(MACD, iBars(NULL,0), SignalMA, 0, MAMethod, i);
for(i = 0; i <= limit; i++)
Histogram[i] = MACD[i] - Signal[i];
CalcFilter(Line, limit);
for(i = limit; i >= 0; i--)
{
if(Histogram[i] > Histogram[i+1] && Filter[i] > Filter[i+1])
{
HistogramWaitClose[i] = 0.0.0;
HistogramSell[i] = 0.0;
HistogramBuy[i] = Histogram[i];
}.
if(Histogram[i] < Histogram[i+1] && Filter[i] < Filter[i+1])
{
HistogramWaitClose[i] = 0.0;
HistogramSell[i] = Histogram[i];
HistogramBuy[i] = 0.0;
} } (注)Histogram[i] は、Histogram[i] と Histogram[i+1] の間に位置する。
if((Histogram[i] >= Histogram[i+1] && Filter[i] <= Filter[i+1]) || (Histogram[i] <= Histogram[i+1] && Filter[i] >= Filter[i+1]))
{
HistogramWaitClose[i] = Histogram[i];
HistogramSell[i] = 0.0;
HistogramBuy[i] = 0.0;
}.
}

return(0);
}.

Expert Advisorで、条件の1つである「上方向にポジションを開く場合」を規定しようとしているのですが。

if(Histogram[i] > Histogram[i+1] && Filter[i] > Filter[i+1])
{
HistogramWaitClose[i] = 0.0;
HistogramSell[i] = 0.0;
HistogramBuy[i] = Histogram[i].Histogram[i+1] && Filter[i+2] = 0.0; HistogramWaitClose[i] = 0.0; HistogramSell[i] = 0.0

しかし、私は2つだけ閉じたバー、すなわち、最初と2番目の(ゼロは触れない)、すべてではない(iバー)、すなわち、最初と2番目のバーを比較する必要があり、最初のバーのバーグラフは、第二およびフィルタ条件およびその他の条件よりも大きい場合は、その反対を販売する、買う...正しくそれを処方する方法、助言してください、茶学んだアマチュア)。

ありがとうございました

 
kvg31:

どんな複雑なものでもアドバイザーとして書きます。というのが大きなポイントです。どのように使うか 気にしない:売れるだろう-気にしない(お金を要求しない)。

P.S.インジケーターが必要な場合は、それを使用するストラテジーを教えてください。


私はプログラミングについて何も知らないし、初心者です。

このアドバイザーはすでに持っているのかもしれませんが、一般的には、そうです。

ロールオーバー "の原則に2つのEMAの交差は、以前のものは、新しいものを開き閉じ、EMAは変数である必要があります。

H1、H4はかなり関係あると思います。

 
riabusha:


もしかしたら、すでにそのようなEAが あるかもしれませんが、その仕組みは以下の通りです。

ロールオーバー "の原則に2つのEMAの交差は、以前のものは、新しいものを開き閉じ、EMAは変数である必要があります。

H1、H4はかなり関係あると思います。

そう、MT4のパッケージに標準で入っている移動平均 線です。しかし、EMAではなく、SMA(単純移動平均)であることに変わりはありません。もちろん、EA内のMAの種類を変えたり、外部パラメータに移動させることもできますが、グレイルになることはないでしょう。
 

こんにちは。

あるポイント数で1つの注文を開き、価格がそれを通過して+側で閉じたら、その注文は閉じて+側で開き直すという簡単なExpert Advisorを作ってください。マイナス位置の場合は、マイナス位置へ反転します。

設定するパラメータ ・ロットサイズと通過する点数。

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

Dimitriyより

 
kvg31:

どんな複雑なものでもアドバイザーとして書きます。というのが大きなポイントです。どのように使うか 気にしない:売れるだろう-気にしない(お金を要求しない)。

P.S.インジケーターが必要な場合は、それを使用する戦略について教えてください。


こんにちは 開発者の皆様。SSL_fast_sBar_mtfのインジケータをベースにしたインジケータを作りたいのでよろしくお願いします。

Lbという値が大きいものと小さいもの(あるいはTIME FREAMが大きいものと小さいもの)の2つの「定規」を描かせたいのです。バー上に色がある場合

両方の「ルーラー」が同じであれば(前のルーラーでは違っていた)、次のバーの始めにオープンのシグナルを出します(矢印のところ)。

矢印はグラフィックオブジェクトではなく、インジケータバッファを 使用して描画する必要があります。外部パラメータウィンドウには、両方の「ルーラー」のデータが必要です。

(そのパラメータをさらに選択するため)。

 

http://savepic.ru/1965498.gif

インジケーターのリンクの送り方がわからない。MQL4.comのライブラリに収録されています。

 

こんにちは。

非常に私は専門家(まあ私はプログラマではない)を作るために頼む:((

技術パラメーター
1)我々は、2つの行を横断することにより、4時間のローソク足チャート上で動作します移動 平均:1(赤)期間18、方法指数、それぞれ(黄色)期間8、方法また指数、価格を閉じるには、次のとおりです。

2) 取引サイズ1ロット

3)クロスオーバーからクロスオーバーのラインまで作業します。黄色の 線が上方向(北)の赤い線(赤)と交差するとすぐに、買い注文、行の2番目の交差、黄色の線は、それに応じて上から下に向かって赤いものを交差 - 新しい売り注文の同時オープンと、オープンオーダーの固定、などなど。

4) 全ての取引に35ポイントのストップロスが設定されています。

4時間足チャートでは、1時間足チャートと違って無駄な動きを避けることができ、確実に動作します。

通貨ペアだけ見れば、その考えは正当化される(損切りトレードはなく、最悪でもゼロ前後)、もちろん、トレンドを考慮し、それを振り返りながらExpert Advisorを使うべきだろう。例として、EUR/USDペアの場合、9月1日に+139ポイントを買ってから+115ポイントを越え、10月12日に+1184ポイントを越える前に再び買うということです。8月同じ絵の+368ポイント売り、その後同じ水準で損切りなしの買い売り、利益確定売りで+181ポイント下げ。さらに、例えば金GOLD(手数料は70ポイントだが、ポイントは1ロット2.5ドル)なので、8月31日から買い+1789ポイント、一気に売り+547ポイント、買い+4557ポイント、売りナシ、買い+4328、売りナシ、今週末まで再び+3636ポイント。

Yuriyさん、ありがとうございます。

 
Hello guys, I can't figure out mql4(( I want to write a small EA based on two EMA's (moving average) which give a beep after crossing?このプログラムについて教えてください。ありがとうございました。
 
silmin85:
こんにちは!みんな、私はmql4を理解することはできません(( 私は2つのEMA(移動平均)に基づいた小さなEAを書きたいのですが、交差した後にビープ音を出すのでしょうか?このプログラムについて教えてください。ありがとうございました。
パッケージに含まれる標準的なMoving Averageを 基本として、実験してみましょう。MAをEMAに置き換えることができます。
 
goldtrader:
供給された標準的なMoving Averageを基本として、実験してみましょう。MAをEMAに置き換えることができます。
EMAを2つ越えるたびにビープ音が鳴るようなシンプルなEAが欲しい!ということです。MetaTradereは、エキスパートでMoving Average.mq4を持っています。

以下はその説明の全文です。

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

//| 移動平均.mq4
//| 著作権 © 2005, MetaQuotes Software Corp.
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#define MAGICMA 20050610

extern double Lots = 0.1;
extern double MaximumRisk = 0.02;
extern double DecreaseFactor = 3;
extern double MovingPeriod = 12;
extern double MovingShift = 6;
//+------------------------------------------------------------------+
///オープンポジションの計算
//+------------------------------------------------------------------+
int CalculateCurrentOrders(文字列シンボル)
{
int buys=0,sells=0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)ブレーク。
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}
//---- リターンオーダー数
if(buys>0) return(buys);
else return(-sells);
}
//+------------------------------------------------------------------+
//| 最適なロットサイズを計算する
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=ロット。
int orders=HistoryTotal(); // ヒストリーの受注総額
int losses=0; // ブレークしないロスオーダーの数
//---- ロットサイズを選択する
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1)。
//---- 損切り注文の回数を計算する。
if(DecreaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }.
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
//----
if(OrderProfit()>0)ブレーク。
if(OrderProfit()<0) losses++;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//---- ロットサイズを返す
if(lot<0.1) lot=0.1;
return(lot)です。
}
//+------------------------------------------------------------------+
//| 開注文条件のチェック
//+------------------------------------------------------------------+
void CheckForOpen()
{
ダブルマ
int res;
//---- 新しいバーの最初のティクスのみ取引に行く。
if(音量[0]>1) return;
//---- 移動平均を取得する
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- 販売条件
if(オープン[1]>ma && クローズ[1]<ma)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,", MAGICMA,0, Red)。
を返します。
}
//---- 買付条件
if(オープン[1]<ma && クローズ[1]>ma)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,", MAGICMA,0,Blue);
を返します。
}
//----
}
//+------------------------------------------------------------------+
//|寄り付き注文の条件をチェックする|||etc.
//+------------------------------------------------------------------+
void CheckForClose()
{
ダブルマ
//---- 新しいバーの最初のティクスのみ取引に行く。
if(音量[0]>1) return;
//---- 移動平均を取得する
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)ブレーク。
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
//---- チェックオーダータイプ
if(OrderType()==OP_BUY)
{
if(Open[1]>ma && Close[1]<ma) OrderClose(OrderTicket(),OrderLots(),Bid,3,White)。
が壊れる。
}
if(オーダータイプ()==OP_SELL)
{
if(Open[1]<ma && Close[1]>ma) OrderClose(OrderTicket(),OrderLots(),Ask,3,White)を実行。
が壊れる。
}
}
//----
}
//+------------------------------------------------------------------+
//| 機能開始
//+------------------------------------------------------------------+
void start()
{
//---- 履歴と取引を確認する
if(Bars<100 || IsTradeAllowed()==false) return;
//---- 現在のシンボルで未決済注文を計算する
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose()。
//----
}

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

ここでどう変えればいいのか......わからない!50EMAと100EMAと交差点でビープ音が鳴るだけでいいんです!!!!